PHP MySQL Insert multiple records - do I need a loop?

I am trying to insert multiple records into a MySQL database. The problem im having is that when i hit submit, only the values from the last row are being entered into the db.  The variable is QTY, for quantity.

Here is an example of a row from the HTML.  I have about 10 of these, that I want to enter different quantities into the DB when I hit submit:

          <td><div align="center" class="main-12px-verdana">Da'NOLLIE</div></td>
          <td><div align="center" class="main-12px-verdana">160cm</div></td>
          <td><div align="center" class="main-12px-verdana">4501<input id="SKU" name="SKU" type="hidden" value="4501">
          </div></td>

I know I need to loop through the values but im not quite sure how to do it.

I think that I need a loop to do this.  I'm using a helper program called Data Assist (www.webassist.com) to insert the records.  Here is the code I am trying to figure out how to add a loop to:

Any guidance on this would be much appreciated.
<?php require_once('../Connections/icelanticordering.php'); ?>
<?php require_once("../WA_DataAssist/WA_AppBuilder_PHP.php"); ?>
<?php 
// WA Application Builder Insert
if (isset($_POST["Insert"])) // Trigger
{
  $WA_connection = $icelanticordering;
  $WA_table = "Orders";
  $WA_sessionName = "WADA_Insert_Orders";
  $WA_redirectURL = "3uswholesale200809.php";
  $WA_keepQueryString = false;
  $WA_indexField = "OrderID";
  $WA_fieldNamesStr = "CustomerID|SKU|QTY";
  $WA_fieldValuesStr = "".((isset($_POST["CustomerID"]))?$_POST["CustomerID"]:"")  ."" . "|" . "".((isset($_POST["SKU"]))?$_POST["SKU"]:"")  ."" . "|" . "".((isset($_POST["QTY"]))?$_POST["QTY"]:"")  ."";
  $WA_columnTypesStr = "',none,''|',none,''|',none,''";
  $WA_fieldNames = explode("|", $WA_fieldNamesStr);
  $WA_fieldValues = explode("|", $WA_fieldValuesStr);
  $WA_columns = explode("|", $WA_columnTypesStr);
  $WA_connectionDB = $database_icelanticordering;
  mysql_select_db($WA_connectionDB, $WA_connection);
  if (!session_id()) session_start();
  $insertParamsObj = WA_AB_generateInsertParams($WA_fieldNames, $WA_columns, $WA_fieldValues, -1);
  $WA_Sql = "INSERT INTO `" . $WA_table . "` (" . $insertParamsObj->WA_tableValues . ") VALUES (" . $insertParamsObj->WA_dbValues . ")";
  $MM_editCmd = mysql_query($WA_Sql, $WA_connection) or die(mysql_error());
  $_SESSION[$WA_sessionName] = mysql_insert_id();
  if ($WA_redirectURL != "")  {
    if ($WA_keepQueryString && $WA_redirectURL != "" && isset($_SERVER["QUERY_STRING"]) && $_SERVER["QUERY_STRING"] !== "" && sizeof($_POST) > 0) {
      $WA_redirectURL .= ((strpos($WA_redirectURL, '?') === false)?"?":"&").$_SERVER["QUERY_STRING"];
    }
    header("Location: ".$WA_redirectURL);
  }
}
?>

Open in new window

pankisAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

pankisAuthor Commented:
Sorry, here is a correct example of a row from my table.  I am trying to enter multiple Quantities (variable shown as QTY[] ) into the database from this form.

Thanks for your help.

 <tr>
          <td><div align="center" class="main-12px-verdana">SHAMAN</div></td>
          <td><div align="center" class="main-12px-verdana">161cm</div></td>
          <td><div align="center" class="main-12px-verdana">4401<input id="SKU" name="SKU" type="hidden" value="4401">
          </div></td>
          <td><div align="center"><input id="QTY" name="QTY[]" type="text" size="5" maxlength="5" value=""></div></td>
          <td><div align="center" class="main-12px-verdana">$377.00</div></td>
          <td><div align="center" class="main-12px-verdana">$649.00</div></td>
          <td>&nbsp;</td>
        </tr>
0
dr_dedoCommented:
for a start, change name="SKU" to name="SKU[]" and see if SKU is inserted into db
0
pankisAuthor Commented:
Thanks, that was an oversight on my part, I've made that change now.

In the DB, I now get "Array" and "Array" for SKU and QTY fields.

I *think* that I want to have individual records created for each order, as each order will have an appropriate CustomerID attached to it.  This is why I *think* I need to have a loop, to loop through each SKU/QTY combination, to create individual orders.

So, I still think I need a loop of some sort.  Any help on that side?
0
dr_dedoCommented:
since all your data are stored in one table, then you do need a loop to create a single sql. i mean, SKU and OTY are arrays, so u need to loop through them to extract the different values of each, and construct a single sql statment that looks like this

insert into table_name ('field1','field2','field3') values
('value1','value2','value3'),
('value1','value2','value3'),
('value1','value2','value3'),

constructing the coma separated part needs a loop, but a single mysql query
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
pankisAuthor Commented:
Thanks for your help.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
PHP

From novice to tech pro — start learning today.