2011-06-19 43 views
1
<?php 
$sqlstr = mysql_query("SELECT * FROM outfits")or die(mysql_error()); 
if (mysql_numrows($sqlstr) != 0) { 
while ($row = mysql_fetch_array($sqlstr)) { 

$sqlstr2 = mysql_query("SELECT * FROM products WHERE pid in ($row['tid'], $row['did'])")or die(mysql_error()); 

?> 
<p><?= $row['pname'] ?></p> 
<p><?= $row['pcat'] ?></p> 
<p><?= $row['pimg1'] ?></p> 
<?php 
} 
} 
?> 
+2

聽起來你需要使用JOIN - http://en.wikipedia.org/wiki/Join_(SQL) –

回答

1

試試這個 $sqlstr2 = mysql_query("SELECT * FROM products WHERE pid in (select id from second table where condition)")or die(mysql_error());

2

您可以在一個查詢做到這一點:

SELECT p.* FROM outfits AS o 
INNER JOIN products AS p 
ON p.pid IN (o.tid, o.did) 

這,你不要一味地粘貼PHP值到你的查詢(額外的好處通常是一大紅旗,因爲除非你真的非常小心,否則你會打開一大堆SQL注入漏洞)。

+0

+ 1'ed - 只要沒有產品的服裝不需要檢索,這是它。 – stefgosselin

+0

如果他們這樣做,請改用'LEFT JOIN'。 – tdammers

+0

此查詢顯示了所有在裝備行中具有匹配的產品行的循環,但我想要做的是有一個裝備循環,並且每個裝備都有一個tid和一個裝備。 –

相關問題