2011-05-13 79 views
0
$How_Many_Manufacturers = "SELECT COUNT(manufacturer), manufacturer 
            FROM products 
            WHERE name LIKE '%$new_title%' 
            GROUP BY manufacturer"; 


     $result2 = mysql_query($How_Many_Manufacturers, $connection) or die(mysql_error()); 

$num_rows = mysql_num_rows($result2); 

if ($num_rows == 0) 
{ 
    echo "<div id=\"noMatches\">No Matches</div>"; 
                } 

else { 

                } 

if语句不起作用。 如何更正此脚本?从select count中获取行数MySQL语句

+0

以何种方式它不能正常工作。它做错了什么? – JohnFx 2011-05-13 21:21:00

+0

@JohnFx如果没有行,它不允许我回显无匹配;它所有它显示一个mysql错误语句 – 2011-05-13 21:22:37

+0

@sdleihssirhc我无意中不接受答案时,我第一次创建此帐户。但是,我已经了解到接受我一直在做的答案很重要。 – 2011-05-13 21:23:46

回答

1

@Arjan您的SQL语法错误;检查对应于你的MySQL服务器版本使用附近的正确语法手册“-25,25”在行4 -RPM

确保您在查询逃避$ NEW_TITLE。

$How_Many_Manufacturers = "SELECT COUNT(manufacturer), manufacturer 
           FROM products 
           WHERE name LIKE '%".mysql_real_escape_string($new_title)."%' 
           GROUP BY manufacturer"; 
+0

同样,我需要数据库中与制造商相对应的所有产品的实际整数。因此,为什么我使用COUNT – 2011-05-13 21:30:19

+1

啊,那么你的代码应该可以工作。 – exahex 2011-05-13 21:37:41

+0

它关于没有行的情况 – 2011-05-13 21:39:29

1

SELECT COUNT总是会返回一个行(即使计数为零)。只需删除COUNT,或者取行查看计数。

+0

错误@tandu我需要相关appliation原因计数。例如,我需要显示与品牌相关的产品数 – 2011-05-13 21:24:25

+1

这是不正确的!特别是在这种情况下,他使用可能返回多行的GROUP BY。 – zzarbi 2011-05-13 21:25:10

+1

什么是不正确的?即使你是GROUP BY,它仍然会返回至少一行。 – 2011-05-13 21:25:44