这个问题很简单,但我不确定自己查找答案所涉及的术语。我所拥有的是一个包含我所有产品信息的MYSQL数据库。我想在产品页面上显示具有特定属性的产品的图像。我创建了这个SQL查询,它输出了我希望图像显示的产品的product_ids列表。但是,我不知道如何在页面本身中使用这组结果。
我目前有:
$cupwinnerids = mysql_query("SELECT product_id FROM `jos_vm_product_type_1` WHERE jos_vm_product_type_1.Cup_Winner ='Cup Winners';");
while($row = mysql_fetch_array($cupwinnerids))
{
echo $row['product_id'] . ",";
}
这将输出正确的id,并在它们之间加上逗号。我想做的是用$ listofids =(...)之类的东西包装整个东西,然后我可以在产品页面中使用PHP文件:如果$ product_id在$ listofids中,那么......如果不是那么..我只是在理解如何使用这些选择的ID时遇到问题。如果我尝试直接输出列表,我只需要“数组”。任何帮助将不胜感激。
答案 0 :(得分:1)
问题可能是您尝试使用echo显示数组,而您应该使用print_r。
在你的情况下,你可以这样做:
$listofids = array();
$cupwinnerids = mysql_query("SELECT product_id FROM `jos_vm_product_type_1` WHERE jos_vm_product_type_1.Cup_Winner ='Cup Winners';");
while($row = mysql_fetch_array($cupwinnerids))
{
array_push($listofids, $row['product_id']);
}
print_r($listofids);
正如Ryan评论的那样,如果你想管理数组的值,你应该使用foreach循环,遍历数组,就像这样
foreach ($listofids as $id) {
echo $id . ", ";
}
// EDIT: you could also use echo implode($listofids,", ") which will do basically the same
如果你想要的是比较$ product_id是否在$ listofids我们in_array中,如果你要查找的值在数组中,则返回true,如果不是,则返回false:
if (in_array($product_id, $listofids)) {
echo "Product ID is in the List of Product ID's";
}
else {
echo "Product ID isn't in the List of Product ID's";
}
答案 1 :(得分:0)
为什么不将$ cupwinnerids返回到您的产品页面,然后执行类似......
的操作while($row = mysql_fetch_array($cupwinnerids)) {
if ($row['product_id'] == $product_id)
// display your image
}
答案 2 :(得分:0)
听起来你最好修改退回产品的查询,以便它连接到jos_vm_product_type_1表 -
SELECT `jos_vm_product`.*, IF(`jos_vm_product_type_1`.`product_id` IS NULL, 0, 1) AS `winner`
FROM `jos_vm_product`
LEFT JOIN `jos_vm_product_type_1`
ON `jos_vm_product`.`product_id` = `jos_vm_product_type_1`.`product_id`
AND `jos_vm_product_type_1`.`Cup_Winner` ='Cup Winners'