gpt4 book ai didi

php - Mysqli 到 foreach 内的数组;内部 foreach 与另一个 mysqli 数组无法正确读取外部数组中的值

转载 作者:行者123 更新时间:2023-11-29 11:25:29 25 4
gpt4 key购买 nike

好的,这是我对外循环的设置。

$sql    ="SELECT * from tblStock";
$result =mysqli_query($conn, $sql);
while($row=mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$rows[]=$row;
}
foreach($rows as $ad) {

然后保持连接打开在这个循环内部,我有一部分需要从数据库读取图像网址。

$sql        ="SELECT url from Photos where itemId ='" . $ad['ItemID'] . "';";
echo $sql;
$imageresult=mysqli_query($conn, $sql);
while($imagerow=mysqli_fetch_array($imageresult, MYSQLI_ASSOC)) {
$imagerows[]=$imagerow;
}

我清空了将在新循环中使用的变量,以便它们对于每个新行都是干净的。

$image1="";
$image2="";
$image3="";
$count =0;

然后我用它来获取最多 3 个图像网址。

foreach($imagerows as $value) {
switch($count) {
case 2:
$image3=$value['url'];
$count =$count+1;
break;
case 1:
$image2=$value['url'];
$count =$count+1;
break;
case 0:
$image1=$value['url'];
$count =$count+1;
break;
}
}

这些值稍后会作为我在开始时设置的 $ad foreach 写入 $rows 内的选项卡文件中的新行。

我得到的是下面的内容,图片的内部 foreach 循环卡在库存表中的第一个项目上,并且在每次迭代时不从新的 $ad['ItemID'] 读取。

enter image description here

最佳答案

在下面的代码中:

$sql ="从照片中选择 url,其中 itemId ='"。 $ad['项目ID'] . “';”;
回显 $sql;
$imageresult=mysqli_query($conn, $sql);
while($imagerow=mysqli_fetch_array($imageresult, MYSQLI_ASSOC)) {
$imagerows[]=$imagerow;
}

您应该在 while 循环开始之前重置 $imagerows[] 数组。所以它应该看起来像:

$sql ="从照片中选择 url,其中 itemId ='"。 $ad['项目ID'] . “';”;
回显 $sql;
$imageresult=mysqli_query($conn, $sql);
$图像行=数组();
while($imagerow=mysqli_fetch_array($imageresult, MYSQLI_ASSOC)) {
$imagerows[]=$imagerow;
}

如果您不这样做,每次结果都会不断添加到$imagerows 的末尾。因此它将保存整个结果集的所有元素。因此,每次进入 foreach($imagerows as $value) 循环时,它将获取前 3 行,分配它们的图像,然后不执行任何操作(因为您限制了 $计数 仅适用于情况 0、1 和 2。

关于php - Mysqli 到 foreach 内的数组;内部 foreach 与另一个 mysqli 数组无法正确读取外部数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38292789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com