2010-10-23 108 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听起来像是一个整数,它似乎很奇怪,你将它与一个空字符串比较...