Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 与'if`` else`和'while'混淆`_Php_Mysql_While Loop_If Statement - Fatal编程技术网

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查询
。谢谢。