gpt4 book ai didi

php - msql选择创建的计数数组

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

我需要通过 ID 选择表格中的一些图像(允许重复条目)。

我的主代码:

...
$selectedImages = $this->selectImages($selectedNews['ID'][$i]);
//Check values
echo 'Count of Array: '.sizeof($selectedImages)."\n";
if (sizeof($selectedImages) == 0) {
$this->html[] = '-';
} else {
for ($j = 0; $j < sizeof($selectedImages); $j++) {
$this->html[] = '<a class="fancybox single_image" href="/'.$selectedImages['Path'][$j].$selectedImages['Name'][$j].'"><img src="thumbnail/thumb.php?src=../../'.$selectedImages['Path'][$j].$selectedImages['Name'][$j].'&amp;h=50&amp;w=50" alt="'.$selectedImages['Name'][$j].'" /></a>';
}
}
...

这是我的方法:

private function selectImages($id) {
$selectedImages = array();

$sql = "SELECT
Name,
Path
FROM
News_images
WHERE
Pos = '".mysqli_real_escape_string($this->db, $id)."'
";

$stmt = $this->db->prepare($sql);

if (!$result = $this->db->query($sql)) {
echo 'Datenbankfehler\n';
echo $this->db->error;
}

$i = 0;
while ($row = $result->fetch_assoc()) {
$selectedImages['Path'][$i] = $row['Path'];
$selectedImages['Name'][$i] = $row['Name'];
$i++;
}

echo 'Selected: '.$i.' images ,';

return $selectedImages;
}

我得到以下输出:已选择 1 张图像,阵列数量:2已选择 0 张图像,数组计数:0选取4张图片,数组个数:2

实际选择的图片数量是正确的。但是数组的计数与实际选择的计数不匹配。

这里有什么问题?

最佳答案

sizeof($selectedImages); 会给你 2 因为它实际上有两个元素:“路径”和“名称”。使用:

sizeof($selectedImages['Path']) ...

sizeof($selectedImages['Name']) ...

尊重您当前的数组结构。


顺便说一句:像下面这样的数组结构不是更好吗? ;)

$selectedImages = array (
array('Path' => '...', 'Name' => '...'),
array('Path' => '...', 'Name' => '...'),
....
);

要实现这一点,您只需简化您的 mysql 获取代码:

$selectedImages = array();
while ($row = $result->fetch_assoc()) {
$selectedImages[] = $row;
}

关于php - msql选择创建的计数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15915238/

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