0

我正在使用以下查询:

$query = "SELECT (SELECT count(*) FROM survey_ptw WHERE erfh= '0') AS F01,
                 (SELECT count(*) FROM survey_ptw WHERE erfh='10') AS F02,
                 (SELECT count(*) FROM survey_ptw WHERE erfh='50') AS F03";
$result = mysql_query($query);
print sprintf('Erf: <table><tr><td>none</td><td>%s</td></tr><tr><td>more</td><td>%s</td></tr></table>', $F01,$F02);

当我在 phpMyAdmin 中执行上述查询时,它会以正确的结果值很好地显示变量。但是,在 PHP 中执行相同操作,不会显示任何结果(空字符串)!mysql_errno() 和 mysql_error() 不返回错误。数据库已打开并在代码中进一步选择。

知道发生了什么吗?

4

2 回答 2

1

因为你没有对结果做任何事情。

从文档中mysql_query()

返回的结果资源应该传递给 mysql_fetch_array() 和其他处理结果表的函数,以访问返回的数据。

因此,要检索结果,您可以使用while如下循环:

while ($row = mysql_fetch_assoc($result)) {
    # code...
}
于 2013-10-19T12:09:19.190 回答
1

检查$res=mysql_fetch_assoc($result);然后print_r();检查结果。它会起作用的。

$query = "SELECT (SELECT count(*) FROM survey_ptw WHERE erfh= '0') AS F01,
                 (SELECT count(*) FROM survey_ptw WHERE erfh='10') AS F02,
                 (SELECT count(*) FROM survey_ptw WHERE erfh='50') AS F03";
$result = mysql_query($query);
$res=mysql_fetch_assoc($result);
$res=$res[0];
sprintf('Erf: <table><tr><td>none</td><td>%s</td></tr><tr><td>more</td><td>%s</td></tr></table>', $res['F01'],$res['F02']);
于 2013-10-19T12:21:33.387 回答