Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.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 如果语句带有and,则不起作用?_Php - Fatal编程技术网

Php 如果语句带有and,则不起作用?

Php 如果语句带有and,则不起作用?,php,Php,非常愚蠢的问题,我是一个C孩子,我也用php编程了4年,但有时当我在里面使用'and'和'or'&&'时if语句不起作用 例如,当前的问题是: while($row = $res->fetch()){ if(($row['Season'] != "2015/2016") && ($row['Source'] != "xmlsoccer")){ $i3++; if($i3==1)hisHeader(); $eventy

非常愚蠢的问题,我是一个C孩子,我也用php编程了4年,但有时当我在里面使用'and'和'or'&&'时if语句不起作用

例如,当前的问题是:

    while($row = $res->fetch()){
        if(($row['Season'] != "2015/2016") && ($row['Source'] != "xmlsoccer")){ 
        $i3++; if($i3==1)hisHeader();
        $eventy = $row['HomeTeam'] . '-v-' . $row['AwayTeam'];
        $stagey = $row['League'];

        $datetime = new DateTime($row['Date']);
        $la_time = new DateTimeZone($zone);
        $datetime->setTimezone($la_time);
        $date = $datetime->format('Y-m-d');
        $time = $datetime->format('H:i');

        $url = toAscii($eventy) . "/" . toAscii($stagey) . "/"  . code36($row['HisID']);
        echo "<tr class='brown' style='height:20px;'>" , "<td style='width:120px; border:1px solid #444;'>" , "<matches-list>" , $date , "</matches-list>" , "</td>" , "<td style='width:60px; border:1px solid #444;'>" , "<matches-list>" , $time , "</matches-list>" , "</td>" , "<td class='nav' style='border:1px solid #444;'>" , "<matches-list>" , "<a href='".$url."' title='$matchtitle'>" ,$row['EventName'] ," (<span style='color:#555'>{$row['League']}</span>)", "</matches-list>","</td>";
        if($row['Status'] != 0){    
          echo "<td style='width:60px; border:1px solid #444;'>", "<matches-list>" , 
          $row['HalfTimeHomeGoals'] . ' : ' . $row['HalfTimeAwayGoals'], "</matches-list>", "</td>", 
          "<td style='width:60px; border:1px solid #444; color: #007AFF'>","<matches-list>" , 
          $row['HomeGoals'] . ' : ' . $row['AwayGoals'], "</matches-list>","</td></tr>";
      }
      else{
        echo "<td style='width:60px; border:1px solid #444; color: #777777' colspan='2' style='text-align:center !important;'>",
        "<matches-list>", "NO RESULTS YET" ,"</matches-list>","</td>";
      }
    }
    }
    echo "</tbody></table>";
}
不行吗?我在数据库中有数百万行,我不想要2015/2016年的xmlsoccer数据,但当我运行它时,它不会返回任何结果

当我只删除这个&&$row['Source']!=我觉得一切都很好

我100%确信一切都是正确的,例如当我转储时

var_dump($row['Season'] . " " . $row['Source']); 

例如,它返回“2013/2014”“xmlsoccer”,但if语句中没有任何内容…

首先在SQL层上进行筛选,然后它应该只返回您需要的内容。 其次,你清楚地要求所有不属于你的东西

($row['Source'] != "xmlsoccer")
但是,当您转储2013/2014和xmlsoccer中看到的值而不进入if语句时,您会感到困惑。 根据我从你的问题中了解到的情况,除了“2015/2016”之外,你想要每个赛季的一切

我认为您正在寻找以下if声明:

if(($row['Season'] != "2015/2016") && ($row['Source'] == "xmlsoccer")){ 

记住贞节的关系。为了解释,让我们做一些数学运算:

ifa和b可以在以下位置关联:

如果a和b为真,则结果为真

但是,如果你需要颠倒这一点,你会想到:

如果不是a和b,则表示如下:

如果a和b不为真,那么c为真

但我们可以用Chasles定理来翻译最后一句话,它说:

A+B=C

A+B\=C

因此,对于Chassels关系,结果是

A\。B\=C点表示或

对应于A | | B=C

所以我们可以说A+B\=C相当于A\+B\=C,这意味着在编程中:

!!a&&b为真等于!a | | |!b也是正确的

最后,您可以编写两个相同的条件:

如果$行['seasure']==2015/2016&$row['Source']==xmlsocket 如果$row[“季节”]!=2015/2016 | |$row[“来源”]!=XML足球
你确定有源密钥吗?不是source或SOURCEAnd顺便说一句,您最好使用where而不是筛选结果来使用mysql选择所需的数据。请记住Chasles关系,我想您应该使用| |或运算符来代替。@Zeratops with or works,但为什么?为什么不起作用?我只想要不是2015/2016和xmlsoccer的行,所以很奇怪为什么OR有效。我总是使用OR来解决它,但我从来没有意识到为什么?如果你能回答这个问题,为什么我应该使用OR,而不是在这样的逻辑和情况下,我想要行什么是季节不是2015/2016,来源不是xmlsoccer?我想要所有来源的所有季节,除了2015/2015和xmlsoccer,所以我不想要2015/2016,也不想要xmlsoccer。我想要2015/2016和tipgin,或者2013/2014和xmlsoccer或tipgin。或者做这项工作,但为什么呢?好吧,我想我现在明白了,你们想要这两个值,但当这两个值结合在一起时就不需要了。我看到其他人已经回答了你的问题,比我可能回答得更好,所以我不会再深入讨论这个问题。如果有人能添加到英语Chasles relation的链接,我只找到了我母语的wikipedia页面。很高兴,我解决了这个问题数十亿次,如果它有帮助的话!
if(($row['Season'] != "2015/2016") && ($row['Source'] == "xmlsoccer")){