Php 与'if`` else`和'while'混淆`
我有一个代码,它应该检查结果是否等于Php 与'if`` else`和'while'混淆`,php,mysql,while-loop,if-statement,Php,Mysql,While Loop,If Statement,我有一个代码,它应该检查结果是否等于8它需要显示一些东西,如果不是,它需要显示一些else,所有这些都发生在while循环中 while ($row_fpages2 = mysql_fetch_array($result_fanpage2)) { if ( $row_fpages2['client'] != NULL ) { //GRAPHS $sql = "SELECT likes, date FROM statistics_pages WHERE idnum
8
它需要显示一些东西,如果不是,它需要显示一些else
,所有这些都发生在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 '...';
while($row\u fpages2=mysql\u fetch\u数组($result\u fanpage2))
{
如果($row_fpages2['client']!=NULL){
//图表
$sql=“选择喜欢的、来自统计信息页面的日期,其中idnum=”“$idnum.”和页面名称=”“$row\U fpages2['page\U name'”。“'ORDER BY`statistics\U pages`.'date`DESC LIMIT 8'”;
$result2=mysql\u query($sql)或die(mysql\u error());
如果($result2){
$data=array();
而($row=mysql\u fetch\u assoc($result2)){
$data[]=$row[“likes”];
}
如果($result2==8){
$c_data=计数($data)-1;
$final=array();
对于($i=0;$i<$c_数据;$i++){
$final[]=getZeroResult($data[$i],$data[$i+1]);
}
$data\u string=join(“,”,$final);
$stats='';
}否则{
$stats='';
};
}否则{
打印('MySQL查询失败,错误:'.MySQL_error());
}
回声“…”;
问题是第一个输出总是显示(==8)
(即使它不等于8),而不是else
输出
然后,如果我有2个或更多,所有内容都在第一个以上,但第一个仍然显示(==8)
有什么帮助吗?您执行的以下操作不正确:
$result2 = mysql_query($sql) or die(mysql_error());
...
if ($result2 == 8) {
mysql\u query
的返回值是一个资源而不是一个int。您试图在那里做什么?您执行了以下不正确的操作:
$result2 = mysql_query($sql) or die(mysql_error());
...
if ($result2 == 8) {
mysql\u query
的返回值是一个资源而不是一个int。您试图在那里做什么?可能是您想要使用的
if(strlen($result2) == 8){
...
}
而不是
if($result2 == 8){
...
}
希望能解决您的问题。可能是您想要使用的
if(strlen($result2) == 8){
...
}
而不是
if($result2 == 8){
...
}
希望这能解决您的问题。适当地缩进所有内容可能会有帮助,这样您就可以清楚地看到块。行数究竟必须等于8。因为我认为如果($result2==8),您就无法做到这一点$result2包含一个资源idIt,它可能有助于正确缩进所有内容,以便您可以清楚地看到块。到底什么必须等于8..行数???因为我认为如果($result2==8),您不能这样做$result2拥有一个资源ID谢谢,你在这个小技巧上帮了我很多。我刚刚写了
$row\u r2=mysql\u fetch\u array($result2);
,然后用fetched array变量替换了mysql\u查询。谢谢。你在这个小技巧上帮了我很多忙。我刚刚写了$row\u r2=mysql\u fetch\u array($result2)
然后用fetched array变量替换了mysql\u查询
。谢谢。