与`if``seven`和`while`混淆

时间:2011-11-25 05:55:43

标签: php mysql while-loop if-statement

我有一个代码,它应该检查结果是否等于8它需要显示某些东西,如果不是,它需要显示else并且所有这些都发生在{{1}内循环。

while

问题是第一个输出始终显示while ($row_fpages2 = mysql_fetch_array($result_fanpage2)) { if ( $row_fpages2['client'] != NULL ) { //GRAPHS $sql = "SELECT likes, date FROM statistics_pages WHERE idnum = '".$idnum."' AND page_name = '".$row_fpages2['page_name']."' ORDER BY `statistics_pages`.`date` DESC LIMIT 8"; $result2 = mysql_query($sql) or die(mysql_error()); if ($result2) { $data = array(); while ($row = mysql_fetch_assoc($result2)) { $data[] = $row["likes"]; } if ($result2 == 8) { $c_data = count($data)-1; $final = array(); for ($i = 0; $i < $c_data; $i++) { $final[] = getZeroResult($data[$i], $data[$i+1]); } $data_string = join(",", $final); $stats = '<img src="http://chart.apis.google.com/chart?chs=240x140&cht=ls&chd=t:0,0|'.$data_string.'&chg=20,20&chls=0.75,-1,-1|6,4,1&chm=o,FF9900,1,-1,7,-1|b,3399CC44,0,1,0"></img>'; } else { $stats = '<img src="images/stats_un.jpg"></img>'; }; } else { print('MySQL query failed with error: ' . mysql_error()); } echo '...'; (即使它不等于8)而不是( == 8)输出。

然后,如果我有2个或更多的东西超出第一个是正确的,但第一个仍然显示else

任何帮助?

2 个答案:

答案 0 :(得分:4)

您执行以下操作:

$result2 = mysql_query($sql) or die(mysql_error());
...
if ($result2 == 8) {

mysql_query的返回值是资源而不是int。你想在那里做什么?

答案 1 :(得分:0)

可能是您想使用

if(strlen($result2) == 8){
               ...
         }

而不是

if($result2 == 8){
               ...
         }

希望能解决你的问题。