使用多个WHERE子句来显示结果?

时间:2017-09-20 10:34:08

标签: php joomla phpmyadmin virtuemart

美好的一天,

我希望有人能帮助我。我在Joomla中使用了VirtueMart。我找到了一种方法来改变产品的布局,将其更改为列表。

在VirtueMart中,您可以创建自定义字段,您可以在创建新产品后将其设置为。现在,在这个例子中,我有两个自定义字段:

  1. 到期日
  2. 批号
  3. 现在,以下代码将显示" customfield_value"从数据库中的正确表WHERE" customfield_value"等于" virtuemart_product_id"。

     <?php //make a database connection and find the field record that contains the customfield string
     $db = JFactory::getDBO();
     $db->setQuery("SELECT customfield_value FROM jos_virtuemart_product_customfields WHERE virtuemart_product_id=".$product->virtuemart_product_id.";");
     $db->query();
     $result = $db->loadResult();
     echo ($result) ?>
    

    这一切都很好。它必须这样做。但是,有一个问题。当我为另一个&#34; customfield_value&#34;复制这段代码时(批号),它仍然只显示第一个&#34; customfield_value&#34; (到期日)。

    现在,它需要两个条件:

    需要显示&#34; customfield_value&#34;在哪里&#34; customfield_ID&#34; =&#34; 2&#34;它在哪里等于当前&#34; product_id&#34;。

    我希望这是有道理的。

    我在下面写了一些代码,希望能让你知道它需要做什么。有人可以帮我查看这段代码,看看我做错了什么:

     <?php //make a database connection and find the field record that contains the customfield string
     $db = JFactory::getDBO();
     $db->setQuery("SELECT customfield_value,customfield_id,virtuemart_product_id FROM jos_virtuemart_product_customfields WHERE virtuemart_product_id=".$product->virtuemart_product_id.";". AND "WHERE customfield_id=5");
     $db->query();
     $result = $db->loadResult();
     echo ($result) ?>
    

    感谢阅读,希望有人能帮助我。我一直在努力解决这个问题,但似乎无法做到这一点。

1 个答案:

答案 0 :(得分:1)

您不必在条件中使用多个WHERE关键字,只需使用AND分隔它们,同时从查询中间删除;

$db->setQuery("SELECT customfield_value,customfield_id,virtuemart_product_id 
FROM jos_virtuemart_product_customfields WHERE 
virtuemart_product_id=".$product->virtuemart_product_id." AND customfield_id=5");