【问题标题】:To show "no such result found" in while loop?在while循环中显示“没有找到这样的结果”?
【发布时间】:2013-12-16 16:45:55
【问题描述】:
<?php
$s=mysql_query("SELECT * FROM bus_detail WHERE source_point='$source_point' AND destination_point='$destination' AND `".$day."` = 'yes'");
while($row=mysql_fetch_array($s)) {
    $count+=1;
    ?>
    <tr class="td_text">
    <td><?php echo $count; ?></td>
    <td><input name="bus_name" type="text" value="<?php echo $row['bus_name'];?>" class="input_box" /></td>
    <td><?php echo $row['bus_no'];?></td>
    <td><input name="bus_id" type="text" value="<?php echo $row['bus_id'];?>" style="border:0px; width:15px; text-align:left;" /></td>
    <td><?php echo $row['departure_time'];?></td>
    <td><?php echo $row['arrival_time'];?></td>
    <td><?php echo $row['duration'];?></td>
    <td><?php echo $row['seat_availablity'];?></td>
    <td><?php echo $row['price'];?></td>
    <td><a href="book.php?bus_id=<?php echo $row['bus_id'];?>"><input type="submit" value="Book Now" style="border:0px;" class="book" title="Search here" /></a></td></tr>
    <?php
}
?>

这段代码完全没问题。但是如果根据查询没有结果,我想显示“没有找到这样的结果”。我试过while(!$s),但没有结果。有什么帮助吗?

我想在空白字段中显示结果

【问题讨论】:

  • 我应该在 tr 内部还是外部使用它??
  • while 块的外部和之后,这意味着 while 永远不会循环
  • $count+=1; ...不错的一个...
  • 你是blockquoting every single one of your questions。你现在应该停止滥用格式。
  • 不要在句子前面使用&gt;。它们不是引号。它只会弄乱你的帖子。

标签: php while-loop


【解决方案1】:

这样显示..我不能把结果放在标题栏后面吗???

【讨论】:

    【解决方案2】:

    你可以使用mysql_num_rows($s),这将返回查询获取的行数,如果没有结果,返回的行数将为0。

    在执行while循环之前添加以下行,

    $num_rows = mysql_num_rows($s);
    if($num_rows == 0) {
      echo "No such result found";
      return;
    }
    

    【讨论】:

    • 需要放在while循环之前。
    • ".$day." = 'yes'"); $num_rows = mysql_num_rows($s); if($num_rows == 0) { echo "没有找到这样的结果";返回; } while($row=mysql_fetch_array($s)) { $count+=1; ?> ....... }
    • 这很好,但它阻止了我所有的 jquery 效果以及另一个代码 n 查询也
    • 在这种情况下使用下面的代码, ....... } }
    • 嘿固定 :).. 我刚刚删除了返回部分 n 现在运行正常.. 非常感谢.. :)
    【解决方案3】:

    您可以使用 mysql_num_rows 来检查返回了多少行:

    if (mysql_num_rows($s) > 0)
    {
        while($row=mysql_fetch_array($s)) {
            $count+=1;
        ?>
            <tr class="td_text">
            <td><?php echo $count; ?></td>
            <td><input name="bus_name" type="text" value="<?php echo $row['bus_name'];?>" class="input_box" /></td>
            <td><?php echo $row['bus_no'];?></td>
            <td><input name="bus_id" type="text" value="<?php echo $row['bus_id'];?>" style="border:0px; width:15px; text-align:left;" /></td>
            <td><?php echo $row['departure_time'];?></td>
            <td><?php echo $row['arrival_time'];?></td>
            <td><?php echo $row['duration'];?></td>
            <td><?php echo $row['seat_availablity'];?></td>
            <td><?php echo $row['price'];?></td>
            <td><a href="book.php?bus_id=<?php echo $row['bus_id'];?>"><input type="submit" value="Book Now" style="border:0px;" class="book" title="Search here" /></a></td></tr>
        <?php
        }
    }
    else
       echo "No such result found";
    

    【讨论】:

    • 我知道,如果根据查询没有结果,我只想显示“没有找到这样的结果”
    • 我不太清楚你的意思。这样你要么显示没有结果,要么像你已经做的那样输出它们。这不是你想要做的吗?
    • 是的,像这样......但我已经使用了while循环......所以我应该把它放在哪里??
    • 嘿,它显示错误,因为我的 php 标签在 count+ 之后结束,如果我为 else 部分开始另一个标签,它向我显示了意外的 elese 语法错误
    • 你应该看看你是否正确地关闭和打开了 PHP 标签。所有打开的流量控制支架都必须以一种或另一种方式关闭。如果没有看到任何代码,很难说出你的错误在哪里。我会尝试用您提供的内容更新我的作品。
    【解决方案4】:

    按照上面的建议检测行数,然后将无结果字符串保存在变量中。

    $num_rows = mysql_num_rows($s);
    if($num_rows == 0) {
      $string_no_result = "No such result found";
      return;
    }
    

    在标题栏的 TR 和 TD 之后,打印无结果字符串。

     echo $string_no_result;
    

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签