1

正如标题所说,我想隐藏一个项目是产品名称不存在。

这里的问题是.. 当它为用户显示产品时,它实际上什么都不显示//show nothing 放置的位置,而不是显示具有产品名称的新产品。

所以有时它显示 10 个产品,有时它显示 5 个产品,这不是我想要的。

如果产品名称不存在,我希望它显示新产品。

关于我在代码中更改的任何线索?

我当前的代码是:

从数据库中随机抽取 12 个产品:

$dynamicList = "";
$sql = mysql_query("SELECT * FROM products ORDER BY RAND() LIMIT 12");

为用户显示产品:

if($product_name == ''){

         //Show nothing

        }else{
    $dynamicList .= 
                '<table border="0" id="indexproducts" style="margin-left:22px; margin-bottom:20px;">
                  <tr>
                    <td id="indexproductfoto" align="center">
                        <a href="http://www.mysite.com/id/'.$id.'/'.$seo8.'/">
                            <img src="http://www.mysite.com/inventoryimages/'.$id.'.jpg" onerror="this.src=\'http://www.mysite.com/inventoryimages/x.jpg\';" />
                        </a>
                    </td>
                  </tr>
                  <tr>
                    <td id="indexproducttext2"><strong>'.$product_name.'</strong><br />
                    </td>
                  </tr>
                  <tr>
                    <td style="color:#F00" id="indexproducttext"><strong>Pris: '.round($price).':-</strong></td>
                    </tr>
                  <tr>
                    <td style="color:#F00" id="indexproducttext"><strong>(Exkl.moms: '.round($price1).':-)</strong></td>
                    </tr>
                    <tr>
                     <td id="indexproducttext"><a href="http://www.mysite.com/id/'.$id.'/'.$seo8.'/">Produktinformation</a></td>
                    </tr>
                </table>';
    }
  }
4

2 回答 2

1

正如我评论的

试试这个 SQL 查询

SELECT * FROM products WHERE IFNULL(productname, "") <> "" ORDER BY RAND() LIMIT 12 

其中操作员的<>意思是“不等于”,与!=所以您查找名称不为空且名称不为 NULL 的所有产品。

http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_not-equal

于 2013-06-27T12:58:43.920 回答
0

我建议简单地重写只返回具有产品名称的产品的查询。

SELECT * FROM products WHERE productname NOT NULL ORDER BY RAND() LIMIT 12

于 2013-06-27T09:26:55.480 回答