2013-10-19 54 views
0

我使用下面的查询:SQL查询没有给出任何结果在PHP

$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()不返回错误。数据库已经打开并在代码中进一步选择。

任何想法是怎么回事?

回答

1

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

从文档mysql_query()

返回的结果资源应该传递给mysql_fetch_array()等功能与结果表时,访问返回的数据。

因此,检索的结果,你可以使用如下一个while循环:

while ($row = mysql_fetch_assoc($result)) { 
    # code... 
} 
+0

那个伎俩,谢谢! – richey

+0

@richey:不客气:) –

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']); 
+0

不幸的是,这仍然无法正常工作。 print_r()给出“1”作为结果。在上面的几行中,$ query =“SELECT count(*)FROM survey_ptw where ther ='J'”; $ result = mysql_query($ query); $ nr = mysql_result($ result,0);工作得很好。 : - / – richey