Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在For循环内部的Foreach循环中获取正确的数据_Php_Loops_Foreach - Fatal编程技术网

Php 在For循环内部的Foreach循环中获取正确的数据

Php 在For循环内部的Foreach循环中获取正确的数据,php,loops,foreach,Php,Loops,Foreach,我需要插入多个选定子类别的商店,商店数据在一个表中,子类别在第二个表中。当我在“for”循环中使用“foreach”循环时,相同的子类别数据被插入n次(取决于有多少商店)。当我将foreach循环放在for循环的外部时,$md5c unique id只插入第一个循环。如何解决这个问题 $input_count = count($_POST['npm']); for ($i = 0; $i < $input_count; $i++) { $a = uniqid(about);

我需要插入多个选定子类别的商店,商店数据在一个表中,子类别在第二个表中。当我在“for”循环中使用“foreach”循环时,相同的子类别数据被插入n次(取决于有多少商店)。当我将foreach循环放在for循环的外部时,$md5c unique id只插入第一个循环。如何解决这个问题

$input_count = count($_POST['npm']);
for ($i = 0; $i < $input_count; $i++) {
    $a = uniqid(about);
    $b = uniqid (about, true);
    $c = uniqid (rand(), true);
    $md5c = md5($c);
    $n = mysql_real_escape_string($_POST['npm'][$i]);
    $a = mysql_real_escape_string($_POST['apm'][$i]);
    $c = mysql_real_escape_string($_POST['mipm'][$i]);
    $wh = mysql_real_escape_string($_POST['rv'][$i]);
    $t = mysql_real_escape_string($_POST['ktf'][$i]);
    $mob = mysql_real_escape_string($_POST['ktm'][$i]);
    $mail = mysql_real_escape_string($_POST['kea'][$i]);
    $con = mysql_real_escape_string($_POST['ipko'][$i]);

    $query2 = "INSERT INTO shops (id, n, a, c, wh, tel, mob, mail, con) VALUES ('$md5c', '$n','$a','$c','$wh','$t','$mob','$mail','$con')";
    $rs2=mysql_query($query2) or die(mysql_error());

    foreach ( $_POST['subcat'] as $key=>$value ) {
        $values = mysql_real_escape_string($value);
        $query3="INSERT INTO sc (subcat_id,shop_id) VALUES ($values,'$md5c')";
        $rs3=mysql_query($query3) or die(mysql_error());
    }
}
$input\u count=count($\u POST['npm']);
对于($i=0;$i<$input\u count;$i++){
$a=uniqid(约);
$b=uniqid(大约,真);
$c=uniqid(rand(),true);
$md5c=md5$c;
$n=mysql\u real\u escape\u字符串($\u POST['npm'][$i]);
$a=mysql\u real\u escape\u字符串($\u POST['apm'][$i]);
$c=mysql\u real\u escape\u字符串($\u POST['mipm'][$i]);
$wh=mysql\u real\u escape\u字符串($\u POST['rv'][$i]);
$t=mysql\u real\u escape\u字符串($\u POST['ktf'][$i]);
$mob=mysql\u real\u escape\u字符串($\u POST['ktm'][$i]);
$mail=mysql\u real\u escape\u字符串($\u POST['kea'][$i]);
$con=mysql\u real\u escape\u字符串($\u POST['ipko'][$i]);
$query2=“在商店(id、n、a、c、wh、tel、mob、mail、con)中插入值(“$md5c”、“n”、“a”、“c”、“wh”、“t”、“mob”、“mail”、“con”)”;
$rs2=mysql\u query($query2)或die(mysql\u error());
foreach($_POST['subcat']作为$key=>$value){
$values=mysql\u real\u escape\u字符串($value);
$query3=“插入sc(子批次id、车间id)值($VALUES,$md5c”)”;
$rs3=mysql\u query($query3)或die(mysql\u error());
}
}

您可以尝试将$value存储在新数组中

因此,在两个循环之前,您必须定义$MD5CARRARY=[],然后启动第一个循环,将每个值存储在数组中,如$MD5CARRARY[]=md5c

使用相同的结构在第一个循环之外启动第二个循环,由于数组已排序,因此可以执行以下操作:

在第二个循环中:

for ($i = 0; $i < sizeof($_POST['subcat']); $i++) {

    $values = mysql_real_escape_string($value);
    $query3="INSERT INTO sc (subcat_id,shop_id) VALUES ({$_POST['subcat'][inner][second-inner]}, {$md5c[$i]})";
    $rs3 = mysql_query($query3) or die(mysql_error());

}
for($i=0;$i
必须将值中的第一个元素编辑为正确的结构

您的最终代码应该是这样的

$input_count = count($_POST['npm']);
$md5cArray = [];
for ($i = 0; $i < $input_count; $i++) {
$a = uniqid(about);
$b = uniqid (about, true);
$c = uniqid (rand(), true);
$md5c = md5($c);
$md5cArray[] = md5($c); // new array
$n = mysql_real_escape_string($_POST['npm'][$i]);
$a = mysql_real_escape_string($_POST['apm'][$i]);
$c = mysql_real_escape_string($_POST['mipm'][$i]);
$wh = mysql_real_escape_string($_POST['rv'][$i]);
$t = mysql_real_escape_string($_POST['ktf'][$i]);
$mob = mysql_real_escape_string($_POST['ktm'][$i]);
$mail = mysql_real_escape_string($_POST['kea'][$i]);
$con = mysql_real_escape_string($_POST['ipko'][$i]);

$query2 = "INSERT INTO shops (id, n, a, c, wh, tel, mob, mail, con) VALUES ('$md5c', '$n','$a','$c','$wh','$t','$mob','$mail','$con')";
$rs2=mysql_query($query2) or die(mysql_error());
$input\u count=count($\u POST['npm']);
$md5cArray=[];
对于($i=0;$i<$input\u count;$i++){
$a=uniqid(约);
$b=uniqid(大约,真);
$c=uniqid(rand(),true);
$md5c=md5$c;
$md5cArray[]=md5($c);//新数组
$n=mysql\u real\u escape\u字符串($\u POST['npm'][$i]);
$a=mysql\u real\u escape\u字符串($\u POST['apm'][$i]);
$c=mysql\u real\u escape\u字符串($\u POST['mipm'][$i]);
$wh=mysql\u real\u escape\u字符串($\u POST['rv'][$i]);
$t=mysql\u real\u escape\u字符串($\u POST['ktf'][$i]);
$mob=mysql\u real\u escape\u字符串($\u POST['ktm'][$i]);
$mail=mysql\u real\u escape\u字符串($\u POST['kea'][$i]);
$con=mysql\u real\u escape\u字符串($\u POST['ipko'][$i]);
$query2=“在商店(id、n、a、c、wh、tel、mob、mail、con)中插入值(“$md5c”、“n”、“a”、“c”、“wh”、“t”、“mob”、“mail”、“con”)”;
$rs2=mysql\u query($query2)或die(mysql\u error());
}

for($i=0;$i
使用foreach($\u POST['subcat'][$i]作为$key=>$value){

$input_count = count($_POST['npm']);
for ($i = 0; $i < $input_count; $i++) {
    $a = uniqid(about);
    $b = uniqid (about, true);
    $c = uniqid (rand(), true);
    $md5c = md5($c);
    $n = mysql_real_escape_string($_POST['npm'][$i]);
    $a = mysql_real_escape_string($_POST['apm'][$i]);
    $c = mysql_real_escape_string($_POST['mipm'][$i]);
    $wh = mysql_real_escape_string($_POST['rv'][$i]);
    $t = mysql_real_escape_string($_POST['ktf'][$i]);
    $mob = mysql_real_escape_string($_POST['ktm'][$i]);
    $mail = mysql_real_escape_string($_POST['kea'][$i]);
    $con = mysql_real_escape_string($_POST['ipko'][$i]);

    $query2 = "INSERT INTO shops (id, n, a, c, wh, tel, mob, mail, con) VALUES ('$md5c', '$n','$a','$c','$wh','$t','$mob','$mail','$con')";
    $rs2=mysql_query($query2) or die(mysql_error());

    foreach ( $_POST['subcat'][$i] as $key => $value ) {
        $values = mysql_real_escape_string($value);
        $query3="INSERT INTO sc (subcat_id,shop_id) VALUES ($values,'$md5c')";
        $rs3=mysql_query($query3) or die(mysql_error());
    }
}
$input\u count=count($\u POST['npm']);
对于($i=0;$i<$input\u count;$i++){
$a=uniqid(约);
$b=uniqid(大约,真);
$c=uniqid(rand(),true);
$md5c=md5$c;
$n=mysql\u real\u escape\u字符串($\u POST['npm'][$i]);
$a=mysql\u real\u escape\u字符串($\u POST['apm'][$i]);
$c=mysql\u real\u escape\u字符串($\u POST['mipm'][$i]);
$wh=mysql\u real\u escape\u字符串($\u POST['rv'][$i]);
$t=mysql\u real\u escape\u字符串($\u POST['ktf'][$i]);
$mob=mysql\u real\u escape\u字符串($\u POST['ktm'][$i]);
$mail=mysql\u real\u escape\u字符串($\u POST['kea'][$i]);
$con=mysql\u real\u escape\u字符串($\u POST['ipko'][$i]);
$query2=“在商店(id、n、a、c、wh、tel、mob、mail、con)中插入值(“$md5c”、“n”、“a”、“c”、“wh”、“t”、“mob”、“mail”、“con”)”;
$rs2=mysql\u query($query2)或die(mysql\u error());
foreach($_POST['subcat'][$i]作为$key=>$value){
$values=mysql\u real\u escape\u字符串($value);
$query3=“插入sc(子批次id、车间id)值($VALUES,$md5c”)”;
$rs3=mysql\u query($query3)或die(mysql\u error());
}
}

在foreach使用$md5c=md5(uniqid(rand(),true))的外部和内部使用foreach;您想解决什么问题?以及如何确定与特定商店相关的类别?请添加打印($\u POST);给你的question@SibirajPR-对于您的代码,我得到了不同的ID。我不明白这一点。您能解释更多吗?如何使用此代码插入值?首先打印\u r($\u POST['subcat']),假设您有一个内部数组,您的代码应该像$\u POST['subcat']['ebooks'][$i]或$\u POST['subcat'][$i]['ebooks'],这取决于你的结构。明白了吗?不:D,不要这么多数组。你能给我指一些例子吗?谢谢。我的打印显示的类别ID数组如下:
Array([0]=>35[1]=>34[2]=>25[3]=>26)
哈哈,我编辑了代码,看了看,现在就试试。现在应该可以了,你必须寻找类似的东西,实际上我没有任何其他示例。:/it说插入代码错误:解析错误:语法错误,意外的“”(t_ENCAPSED_和_空格)
$input_count = count($_POST['npm']);
for ($i = 0; $i < $input_count; $i++) {
    $a = uniqid(about);
    $b = uniqid (about, true);
    $c = uniqid (rand(), true);
    $md5c = md5($c);
    $n = mysql_real_escape_string($_POST['npm'][$i]);
    $a = mysql_real_escape_string($_POST['apm'][$i]);
    $c = mysql_real_escape_string($_POST['mipm'][$i]);
    $wh = mysql_real_escape_string($_POST['rv'][$i]);
    $t = mysql_real_escape_string($_POST['ktf'][$i]);
    $mob = mysql_real_escape_string($_POST['ktm'][$i]);
    $mail = mysql_real_escape_string($_POST['kea'][$i]);
    $con = mysql_real_escape_string($_POST['ipko'][$i]);

    $query2 = "INSERT INTO shops (id, n, a, c, wh, tel, mob, mail, con) VALUES ('$md5c', '$n','$a','$c','$wh','$t','$mob','$mail','$con')";
    $rs2=mysql_query($query2) or die(mysql_error());

    foreach ( $_POST['subcat'][$i] as $key => $value ) {
        $values = mysql_real_escape_string($value);
        $query3="INSERT INTO sc (subcat_id,shop_id) VALUES ($values,'$md5c')";
        $rs3=mysql_query($query3) or die(mysql_error());
    }
}