2013-02-25 23 views
0

我有一個下拉選擇表單,它基於一個「品牌」表,其中包含150多個brand_name(s)以及相應的brandid(s)。選擇列表上只有特定的行

正如您在下面的代碼中看到的,我所有的品牌/行都會出現在下拉列表中。我想知道是否有辦法排除某些品牌(無需從表格中刪除它們;例如:它們暫時缺貨)。而不僅僅是限制1到7.

例如,如果我想要brand_names with brandids 9,27,50等不出現在選擇選項中,它如何完成?有某種EXCEPT()函數嗎?

<?php 

echo "<form action=\"chosen_brand.php\" method=\"get\">\n"; 

echo "<select name=\"brand_name\">\n"; 

$stmt = mysqli_stmt_init($link); 
if($stmt=mysqli_prepare($link,"SELECT `brandid`,`brand ` FROM `brand ` WHERE `brandid`")) 
{ 
mysqli_stmt_bind_param($stmt,"i", $brandid); 

mysqli_stmt_execute($stmt); 

mysqli_stmt_bind_result($stmt,$brandid, $brand_name); 

while(mysqli_stmt_fetch($stmt)) 
     { 
      echo "<option value=\"$brandid\"> $brand_name </option>";  
     }  
     echo "</select>\n"; 
     echo "<input name=\"submit\" type=\"submit\" id=\"brandid\" value=\"submit\" />\n"; 
     echo "</form> \n"; 

mysqli_stmt_close($stmt); 

mysqli_free_result($result); 
} 

?> 

感謝, 仁

+0

'WHERE brandid NOT IN(9,25,50等)' – 2013-02-25 17:22:25

+0

如果你想要這個作爲工作的「缺貨」,你應該修改你的查詢只拉出庫存不等於零的記錄。 – Joe 2013-02-25 17:24:16

+0

太棒了!這很有效,Pedro del Sol。謝謝!太糟糕了,我不能投票,因爲我沒有足夠的代表。我也不能接受它,因爲它不在答案部分。儘管如此,再次感謝! – Jen 2013-02-25 23:08:30

回答

0

WHERE brandid NOT IN (9,25,50,etc)

,如果你不實際存儲的庫存水平,但有缺貨的品牌

或許

WHERE stock_level > 0列表

如果你有每brandid個股層面

+0

再次感謝,佩德羅德爾索爾和喬還有更多的建議。我也想到了> 0的路線,但我可能想排除一些品牌 - 可能是暫時的 - 除了缺貨以外的原因。 – Jen 2013-02-26 17:20:30