Php 每两个一美元

Php 每两个一美元,php,mysql,foreach,insert,Php,Mysql,Foreach,Insert,我使用两个foreach循环将数据插入数据库时遇到了一个问题 这就是我目前拥有的: $to_ord = explode("**", $this->to_ord[$i]); $i=0; foreach ($to_ord as $tord) { $sql3 = "INSERT INTO temporders (order_description) VALUES (:order_description)"; $st3 = $conn

我使用两个foreach循环将数据插入数据库时遇到了一个问题

这就是我目前拥有的:

$to_ord = explode("**",  $this->to_ord[$i]);
$i=0;   
foreach ($to_ord as $tord) { 
  $sql3 = "INSERT INTO 
  temporders (order_description) 
      VALUES (:order_description)";             
  $st3 = $conn->prepare ( $sql3 );
  $st3->bindValue( ":order_description", $tord[$i], PDO::PARAM_STR );
  $st3->execute();
  $i++;
}

$qo_ord = explode("**",  $this->qo_ord[$i]);
$i=0;   
foreach ($qo_ord as $qord) { 
  $sql4 = "INSERT INTO 
  temporders (order_description) 
      VALUES (:order_description)";             
  $st4 = $conn->prepare ( $sql4 );
  $st4->bindValue( ":order_description", $qord[$i], PDO::PARAM_STR );
  $st4->execute();
  $i++;
}
基本上,代码获取信息源并将其插入表中。但是,第二个脚本不会运行,我已经将其缩小为使用的$I和$++,因为如果我从第一个脚本中删除$I和$I++(第一个脚本显然不会在没有它的情况下运行),第二个脚本将工作,但一旦我将$I放回,第二个脚本将不再工作

有没有办法避开这件事?这两个阵列的大小不会相同

任何帮助都将不胜感激


伊恩,我想你可能误解了

我希望通过下面的例子来澄清这一点:

$qo_ord = array(
    array( "0 - first value", "0 - second value", "0 - third_value", "0 - fourth value", "0 - fifth value" ),
    array( "1 - first value", "1 - second value", "1 - third_value", "1 - fourth value", "1 - fifth value" ),
    array( "2 - first value", "2 - second value", "2 - third_value", "2 - fourth value", "2 - fifth value" ),
    array( "3 - first value", "3 - second value", "3 - third_value", "3 - fourth value", "3 - fifth value" ),
    array( "4 - first value", "4 - second value", "4 - third_value", "4 - fourth value", "4 - fifth value" ),
);

$i=0;
foreach ( $qo_ord as $qord ) {
    //$qord is now an element of your array ie. in the first loop => array( "0 - first value", "0 - second value"
    echo $qord[$i]."<br>";
    $i++;
}
下一个示例:

|X| | | | |
-----------
| |X| | | |
-----------
| | |X | | |
-----------
| | | |X| |
-----------
| | | | |X|
// if you want to get the first item just use [0]
foreach ( $qo_ord as $qord ) {
    //$qord is now an element of your array ie. in the first loop => array( "0 - first value", "0 - second value"
    echo $qord[0]."<br>";
}
|X| | | | |
-----------
|X| | | | |
-----------
|X| |  | | |
-----------
|X| | | | |
-----------
|X| | | | |

$qo_ord=explode(“**,$this->qo_ord[$i])中使用它之前,是否需要重置
$i
行?您如何“将问题缩小到
$i
”?当您调试这个时,它究竟是如何失败的?发生这种情况时,运行时值是什么
$i
只是一个递增变量,在第二个循环之前重置。这是个什么问题?谢谢@Epodax让我看到了这条线而不是循环。移动$qo_ord=explode(“**,$this->qo_ord[$i]);老实说,我试图简化这个问题,而不是发布我所有的代码,但我确实希望它像第一个例子一样迭代,因为我实际上是从一个数组中输入了几个值。我的道歉,试图简化它,但失败了:(没问题,对不起,我想我误解了一些东西,因为你发布的例子正是我在第一个例子中描述的;)