2010-10-23 105 views
0
$foot = mysql_query("SELECT count(*) 
         FROM tblQA 
         WHERE intResponseID = '' 
         AND cCategory = 'Football' as qcount, 
        (SELECT max(dPostDateTime) 
         FROM tblQA 
         WHERE intResponseID = '' 
         AND cCategory = 'Football') as lastq"); 


$football = mysql_fetch_array($foot); 

echo "<td class='forum'>" . $footbll['qcount'] . "</td>"; 
echo "<td class='forum'>" . $footbll['lastq'] . "</td>"; 

這不會顯示我的表中的任何內容。我沒有發佈整個HTML代碼,我有表結構很好。我哪裏錯了? SQL查詢

+0

'$ football'或'$ footbll',這是正確的拼寫?你確定你的查詢沒有產生任何錯誤嗎? – BoltClock 2010-10-23 15:32:08

+2

不可能告訴。複製+粘貼完整查詢,在數據庫GUI中運行它,看看是否有結果出現。 – 2010-10-23 15:32:35

+0

拼寫是我的錯誤在這裏,它的代碼($ football) – BigMike 2010-10-23 15:33:41

回答

0

好的,這是我的解決方案。我想通了:

$foot = mysql_query("SELECT count(*), max(dPostDateTime) FROM tblQA WHERE intResponseID = '' AND cCategory = 'Football'"); 

$football = mysql_fetch_assoc($foot); 


echo "<td class='forum'><center>" . $football['count(*)'] . "</center></td>"; 
echo "<td class='forum'><center>" . $football['max(dPostDateTime)'] . "</center></td>"; 
+1

這正是OMG Ponies回答說要做的事情(儘管由於列別名他比這個更好)。你應該接受他的答案,而不是創建自己的,主要是重複的答案。 – joshperry 2010-10-23 16:06:58

0

你應該是這樣的:

while ($football = mysql_fetch_array($foot)) { 
    echo "<td class='forum'>" . $football['qcount'] . "</td>"; 
    /* yadda yadda yadda */ 
} 

也有幾個錯別字在你的代碼。

+0

由於某種原因While循環打破了我的代碼 – BigMike 2010-10-23 15:43:26

1

如果這是您的文字代碼,您在$footbll有一個錯字。

+0

Pekka,謝謝。我在這篇文章中犯了錯誤,而不是代碼 – BigMike 2010-10-23 15:36:15

0

我想你錯過了組合子,其中,位於:...qcount, (SELECT...

3

用途:

$foot = mysql_query("SELECT COUNT(*) AS qcount, 
          MAX(dPostDateTime) AS lastq 
         FROM tblQA 
        WHERE intResponseID = '' 
         AND cCategory = 'Football' "); 

$football = mysql_fetch_array($foot); 

echo "<td class='forum'>" . $football['qcount'] . "</td>"; 
echo "<td class='forum'>" . $football['lastq'] . "</td>"; 

我重新寫你的查詢,則可以全部在一個語句中完成。

0

該查詢沒有任何意義,我非常驚訝它會返回您的數據庫GUI中的某些東西。

如果你不想改變語法,你會做這樣的事情:

SELECT (SELECT COUNT(*) FROM tblQA) AS qcount, (SELECT MAX(dPOstDateTime) FROM tblQA) AS lastq -- i didn't add the conditions 

但它可以通過這樣做查詢,而不是很容易做到:

SELECT COUNT(*) AS qcount, 
     MAX(dPostDateTime) AS lastq 
FROM tblQA 
WHERE intResponseID = '' 
    AND cCategory = 'Football' 

請注意intResponseID聽起來像是一個整數,它似乎很奇怪,你將它與一個空字符串比較...