PHP MySQL IF .. ELSE(否则不显示任何内容)

时间:2014-10-14 10:20:30

标签: php

我正在尝试遍历表中的所有记录,并显示与SQL匹配的所有记录的内容,并显示没有匹配的记录的其他内容。

所以我这样做:

$result = mysqli_query($con,"SELECT * FROM myTable WHERE id='$my_id' ");

  while($row = mysqli_fetch_array($result)) {


      if (!empty($row['id'])) {

        echo 'Match Exists!';

      } else {

        echo 'There is NO Match';

      }



  } 

我的问题是,尽管有匹配,但是没有回音用于非匹配。

所以,我得到了“Match Exists!”对于比赛但没有“没有比赛”的非比赛。

我在这里做错了什么?

6 个答案:

答案 0 :(得分:1)

SELECT * FROM myTable WHERE id ='$ my_id

在这里,您要检查是否存在任何ID匹配的行,以便您的代码丢失其属性:

if(!empty($row['id'])) {

        echo 'Match Exists!';

      } else {

        echo 'There is NO Match';

      }

您已经验证是否存在,因此不会有任何空ID。

答案 1 :(得分:0)

如果没有匹配项,$row将评估为FALSE(因为没有返回任何行)。如果您必须使用while循环,请尝试do { ... } while (...);,如下所示。

不同之处在于在第一次迭代后检查while()条件。

$result = mysqli_query($con,"SELECT * FROM myTable WHERE id='$my_id' ");

  do {
     $row = mysqli_fetch_array($result);
     if (!empty($row['id'])) {
       echo 'Match Exists!';
     } else {
       echo 'There is NO Match';
     }
  } while(!empty($row['id']));

答案 2 :(得分:0)

由于您的查询,您没有匹配项。

SELECT * FROM myTable WHERE id='$my_id' 

以上内容仅提取匹配的记录。

也许你应该改变你的查询或行

 if (!empty($row['id']))

并检查可能为空的其他字段

答案 3 :(得分:0)

Try this

 <?php
    $result = mysql_query($con,"SELECT * FROM myTable WHERE id='$my_id' ");
    $num=mysql_num_rows($result);

       if ($num!=0) 
       {

            echo 'Match Exists!';

          } else {

            echo 'There is NO Match';

          }
          ?>

                                OR




                                <?php
        $result = mysql_query($con,"SELECT * FROM myTable WHERE id='$my_id' ");

      while($row = mysql_fetch_array($result)) 
      {
    $id=$row['id'];
    $query=$result = mysql_query($con,"SELECT * FROM myTable WHERE id='$id' ");
    $num=mysql_num_rows($query);
          if ($num!=0) 
          {
    echo 'Match Exists!';

          } else {

            echo 'There is NO Match';

          }
     } 

      ?>

答案 4 :(得分:0)

您的查询明确过滤掉#34;不匹配#34;行:

WHERE id = '$my_id' -- neither rows having "id != $my_id"
                    -- nor rows with empty "id" are fetched by this query

您可能希望从查询中删除WHERE条件,并在PHP循环中测试if($row['id'] === $my_id)

答案 5 :(得分:-1)

尝试删除带修剪的“空格”:

if (!empty(trim($row['id']))) {
  echo 'Match Exists!';
}