簡體   English   中英

在For循環內的Foreach循環中獲取正確的數據

[英]Get right data in Foreach loop inside For loop

我需要插入多個帶有選定子類別的商店,在一個表中插入商店數據,然后在第二個表中插入子類別。 當我使用“ for”循環中的“ foreach”循環執行此操作時,相同的子類別數據將插入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());
    }
}

您可以嘗試將$ values存儲在新數組中

因此,在這兩個循環之前,您必須定義$ md5cArray = [],然后開始第一個循環,將每個值存儲在數組中,例如$ md5cArray [] = 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());

}

您必須將值中的第一個元素編輯為正確的結構。

您的最終代碼應如下所示

$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());}

使用foreach($ _POST ['subcat'] [$ i] 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());
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM