我使用以下查询:
$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()不会返回错误。数据库已经打开并在代码中进一步选择。
知道发生了什么事吗?
答案 0 :(得分:1)
因为你没有对结果做任何事情。
来自mysql_query()
的文档:
返回的结果资源应该传递给mysql_fetch_array(),以及其他用于处理结果表的函数,以访问返回的数据。
因此,要检索结果,您可以使用while
循环,如下所示:
while ($row = mysql_fetch_assoc($result)) {
# code...
}
答案 1 :(得分: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']);