2011-05-13 26 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