2012-03-10 57 views
0

這個問題很簡單,但我不確定自己查找答案的條款。我擁有的是一個包含我所有產品信息的MYSQL數據庫。我希望在產品頁面上顯示具有特定屬性的產品的圖像。我已經創建了這個SQL查詢,它輸出了我希望圖像顯示的產品的product_ids列表。但是,我不知道如何在頁面中使用這組結果。在PHP中使用一組Mysql結果作爲對比

我目前有:

$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中,那麼... if not then .. 。我只是在理解如何使用這個ID選擇時遇到問題。如果我嘗試直接輸出列表,我只是得到「數組」。任何幫助將不勝感激。

+0

我想你的圖像存儲在文件系統開始嗎?他們都在同一個目錄嗎?您是否使用product_id存儲了圖像的URL? [你有什麼嘗試?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – Ryan 2012-03-10 22:12:41

+0

你好,這是不是圖像的一代,我有一個問題是隻需將杯子獲勝者的product_ids設置爲可以簡單地說echo $ cupwinnerids並獲取id列表而不僅僅是「array」的狀態。感謝您的答覆。 – Natastna2 2012-03-10 22:21:03

+0

好吧,我誤解了這個問題,抱歉,在使用數組時有什麼問題?對數組使用foreach可能是最簡單的方法? – Ryan 2012-03-10 22:28:44

回答

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); 

萊恩評論說,如果你要管理的陣列,那麼你應該使用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,假:

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"; 
} 
0

爲什麼不返回$ cupwinnerids到你的產品頁面,然後像做...

while($row = mysql_fetch_array($cupwinnerids)) { 
    if ($row['product_id'] == $product_id) 
    // display your image 
} 
+0

謝謝瑞恩。我沒有考慮過。你的答案正是我所需要的。它現在工作完美:-) – Natastna2 2012-03-10 22:35:21

+0

你應該接受瑞恩的答案,然後...... – pocketfullofcheese 2012-03-10 22:48:17

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'