为了账号安全,请及时绑定邮箱和手机立即绑定

如果实时搜索框输入与数据库不匹配,如何显示未找到数据?

如果实时搜索框输入与数据库不匹配,如何显示未找到数据?

PHP
开满天机 2021-04-30 14:15:57
<?php$output = "";if(isset($_POST["query"])){ $search = $_POST["query"]; $sql = ("  SELECT * FROM `products`   WHERE productName LIKE :sText  OR productLine LIKE :sText  OR productVendor LIKE :sText  OR MSRP LIKE :sText "); $stmt=$db->prepare($sql);}elseif{ $sql = "SELECT * FROM products"; $stmt=$db->prepare($sql);}$stmt->execute(array(':sText'=>'%'. $search .'%'));foreach($stmt as $row){ $output = "           <div class='product_wrapper'>        <form method='post' action=''>        <table style='width:170px;height:143px;''>        <tr>        <td><input type='hidden' name='productCode' value=". $row['productCode']." />        <div class='name'>".$row['productName']."</div>        <div class='price'>RM". $row['MSRP']."</div></td>        </tr>        <table style='width:170px;height:60px'>        <tr>        <td><button type='submit' class='buy' style='margin: : 25px;'>Buy Now</button></td>        </tr>        </table>        </table>        </form>          </div> "; echo $output;}else{ echo 'Data Not Found';}?>为了添加其他未找到的回显数据,我对elseif条件所需的条件有疑问。我必须找出可以添加的elseif条件。感谢您的帮助。
查看完整描述

2 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

您不能将else与foreach一起使用,因此需要在使用foreach语句之前检查是否有任何结果。


if($stmt->rowCount() > 0) {

    foreach($stmt as $row)

    {

        $output = echo" 

          <div class='product_wrapper'>

        <form method='post' action=''>

        <table style='width:170px;height:143px;''>

        <tr>

        <td><input type='hidden' name='productCode' value=". $row['productCode']." />

        <div class='name'>".$row['productName']."</div>

        <div class='price'>RM". $row['MSRP']."</div></td>

        </tr>

        <table style='width:170px;height:60px'>

        <tr>

        <td><button type='submit' class='buy' style='margin: : 25px;'>Buy Now</button></td>

        </tr>

        </table>

        </table>

        </form>

        </div>";


     $output;

    }

} else {

    echo 'Data Not Found';

}


查看完整回答
反对 回复 2021-05-14
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

您可以rowCount用来获取受影响的行数


试试这个


 if($stmt->rowCount() > 0) {

   //Loop throught the rows

 }else{

    echo "No matching records found.";

 }

检查更多信息PDOStatement :: rowCount


查看完整回答
反对 回复 2021-05-14
  • 2 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信