4
    foreach(($no_items as $key=>$txt ) && ($b_cost as $key=>$txt1 ))
    {
    $sql1 = "INSERT INTO bulk_s (`no_items`,`b_cost`) VALUES ('$txt[$key]','$txt1[$key]')       ";
    }

我的 php 页面中有两个动态创建的数组,我需要将它们的值存储在数据库的同一行中

我的js代码

    function changeIt()
    {
    my_div.innerHTML = my_div.innerHTML +"<br> items <input type='text'  name='txt[]'+ i>"

    my_div.innerHTML = my_div.innerHTML +" cost <input type='text'  name='txt1[]'+ j>"
    i++;
    j++;
    } 
4

2 回答 2

3

您的foreach语法不是有效的 PHP。如果要同时迭代两个具有相同键的数组,则必须迭代键:

foreach (array_keys($no_items) as $key) {
    $txt = $no_items[$key];
    $txt1 = $b_cost[$key];
    $sql1 = "INSERT INTO bulk_s …";
}

但是,请注意,永远不应该像这样构造 SQL 语句,这会使它们容易受到SQL 注入的影响。这是一种不可接受的编码做法。在最好的情况下,它会使您的程序不那么优雅,在最坏的情况下,它会让您面临诉讼,并且有一个非常简单的优越解决方案

于 2013-02-04T18:41:24.487 回答
0

试试这样

  $i = 0;
foreach($no_items as $key=>$items) {

   $data[$i] = array(
           'variable1' => $items['no_items'],
           'variable2' => $items['b_cost'],
   );
    $sql1 = "INSERT INTO bulk_s (`no_items`,`b_cost`) VALUES ('$data['variable1']','$data['variable2']')       ";
   $i++;

 }
于 2013-02-04T18:35:51.457 回答