【问题标题】:Only certain rows on select list仅选择列表中的某些行
【发布时间】: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 &gt; 0 之类的事情可能更有意义

标签: php


【解决方案1】:

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

如果您实际上没有存储库存水平,但有一个缺货品牌列表

或许

WHERE stock_level &gt; 0

如果您有每个品牌的个别库存水平

【讨论】:

  • 再次感谢 Pedro del Sol 以及 Joe 的补充建议。我也想到了 >0 路线,但我可能想排除一些品牌——可能是暂时的——出于缺货以外的原因。
猜你喜欢
  • 2019-04-18
  • 2010-11-22
  • 1970-01-01
  • 2012-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-15
  • 1970-01-01
相关资源
最近更新 更多