我需要插入多个商店与选定的子类别,商店数据在一个表和子类别在第二个。当我使用'foreach‘循环在'for’循环中插入相同的子类别数据n次时(取决于有多少商店)。当我将foreach循环放在for循环之外时,$md5c唯一的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());
}
}发布于 2013-12-27 13:08:04
您可以尝试将$values存储在新的数组中
所以在两个循环之前,你必须定义$md5cArray = [],然后开始第一个循环,将每个值存储在数组中,如$md5 cArray[]= 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());
}您必须将values中的第一个元素编辑为正确的结构。
您的最终代码应该如下所示
$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());}
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'][$i]}","{$md5c[$i]}")";
$rs3=mysql_query($query3) or die(mysql_error());}发布于 2013-12-28 14:46:53
使用foreach ($_POST‘’subcat‘as $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());
}
}https://stackoverflow.com/questions/20794948
复制相似问题