首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在For循环内的Foreach循环中获取正确的数据

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

Stack Overflow用户
提问于 2013-12-27 12:50:56
回答 2查看 204关注 0票数 0

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

代码语言:javascript
复制
$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());
    }
}
EN

回答 2

Stack Overflow用户

发布于 2013-12-27 13:08:04

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

所以在两个循环之前,你必须定义$md5cArray = [],然后开始第一个循环,将每个值存储在数组中,如$md5 cArray[]= md5c;

在具有相同结构的第一个循环之外开始第二个循环,由于数组是排序的,因此您可以这样做:

在第二个循环中:

代码语言:javascript
复制
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中的第一个元素编辑为正确的结构。

您的最终代码应该如下所示

代码语言:javascript
复制
$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());

}

代码语言:javascript
复制
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());}
票数 0
EN

Stack Overflow用户

发布于 2013-12-28 14:46:53

使用foreach ($_POST‘’subcat‘as $key => $value ) {

代码语言:javascript
复制
$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());
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20794948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档