我希望从image_name
和category
匹配的其中一个表中获取所有account_id
值。
该查询连接3个表。
我正在使用mysqli。
SELECT image_name
FROM add_images, item, user_item
WHERE user_item.account_id = '$accountId' AND item.category = '$category';
但是当这个查询执行并var_dump()
结果时,我只找到第一条记录?应该有8个项目?
我通过在返回1的数组上返回count()
来确认这一点。
如果我在phpmyadmin中运行此查询,查询会成功运行并找到所有8个项目,但它们会重复8次,不确定是什么意思?
我已将image_name
替换为*
我也尝试过image_name.*
,而image_name*
在我的代码和phpmyadmin中都失败了。
当我转出我得到的对象时:
object(mysqli_result)#3 (5) { ["current_field"]=> int(0) ["field_count"]=> int(1) ["lengths"]=> NULL ["num_rows"]=> int(512) ["type"]=> int(0) } int(1) string(29)
我也尝试过以下建议: How get all values in a column using PHP?
while($row = mysqli_fetch_array($result,MYSQL_ASSOC))
但建议的代码也失败了。
以下是我的代码:
public function searchItems($accountId, $catagory,$userId){
$imagePath = "D:\imagesdb\images\\" . $userId;
$thumb_path = $imagePath . "t\\";
$conn = $this->create_connection('read');
$sql = "SELECT image_name FROM add_images, item, user_item WHERE user_item.account_id='$accountId' AND item.catagory='$catagory'";
$result = $conn->query($sql)or die(mysql_error());
var_dump($result);
while ($row = mysqli_fetch_array($result)){
$path = $thumb_path . $row['image_name'];
$result = count($path);
var_dump($result);
return $path;
}
$conn->close();
}
我也尝试了一个准备好的声明我遇到了同样的问题!
有人有什么建议吗?这让我很生气!
答案 0 :(得分:1)
你在while循环中无条件地返回$ path。所以函数在获取一行后返回。这可能不是你想要的。
您可能想要创建一个数组,将所有图像路径添加到该数组并在函数末尾返回该数组。