【发布时间】:2013-02-27 00:38:38
【问题描述】:
我有一个下拉选择表单,它基于一个“品牌”表,其中包含 150 多个品牌名称和相应的品牌 ID。
正如您在下面的代码中看到的,我所有的品牌/行都将出现在下拉表单中。我想知道是否有办法排除某些品牌(不从表中删除它们;例如:它们暂时缺货)。而不仅仅是 LIMIT 1 到 7。
例如,如果我希望品牌 ID 为 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);
}
?>
谢谢, 仁
【问题讨论】:
-
WHERE brandid NOT IN (9,25,50,etc) -
如果您希望它作为“缺货”工作,您应该修改您的查询以仅提取库存不等于零的记录。
-
太棒了!那行得通,佩德罗·德尔·索尔。谢谢!太糟糕了,我不能投票,因为我没有足够的代表。我也不能接受它,因为它不在答案部分。尽管如此,再次感谢!
-
很高兴它有帮助;尽管正如乔所说,如果您在同一个数据库中有大量库存,那么做类似
SELECT fields WHERE stock_level > 0之类的事情可能更有意义
标签: php