2015-11-26 55 views
2

我有一對夫婦,我上運行一個查詢像這樣的MySQL表:如何從MSQL查詢變量與WHERE IN子句

$sql = " 
SELECT my_item 
    FROM t1 
    , t2 
WHERE t1.id='$id' 
    AND t2.spec IN (208, 606, 645) 
    AND t1.spec = t2.spec 
"; 

注意我用的是凡。

接下來我運行一個查詢和使用,而嘗試以獲得結果:

$retval = mysql_query($sql) or die('Query failed: ' . mysql_error()); 
while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) 
{ 
$myitem = $row['my_item']; 
echo "My item is $myitem<br />\n"; 
} 

這將打印三種結果,每一個與$ myitem不同的值的基礎上,從IN子句中的三個選項在開始的SELECT語句。

如何提取並將每個這三個值分別存儲在單獨的變量中?

謝謝!

+0

如果$ myitem是一個數組,然後'變量'只是數組的元素,會不會更好? – Strawberry

+0

這聽起來像一個好主意,草莓!要做到這一點,我應該使用$ myitem = array($ row ['my_item']); ? – Cucurigu

回答

2

使用join

SELECT my_item FROM t1 join t2 
on t1.spec=t2.spec 
WHERE t1.id='$id' 
AND t2.spec IN (208, 606, 645) 

或創建陣列

while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) 
{ 
$myitem[] = $row['my_item']; 
} 

使用此陣列likt在於: -

foreach($myitem as $myitems){ 
echo "My item is $myitems<br />\n"; 
} 

,或者使用索引

echo "My item is $myitems[0]"; 
+0

會給這個嘗試,Rahautos!不過,我的問題是從while循環中提取3個單獨PHP變量的結果。 – Cucurigu

+0

請檢查我更新的答案@Cucurigu –

+0

非常感謝Rahautos,它就像一個魅力! – Cucurigu

0

您可以將$row['my_item']存儲在一個數組中。 參考PHP arrays