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

如何从数组值搜索到mysql

如何从数组值搜索到mysql

PHP
绝地无双 2021-10-15 15:54:30
变量包含来自搜索框的 (14409,14408,14405)。如果找到其中一个获取数据,我想在 mysql 中分别搜索它们中的每一个,如果没有忽略它并显示不存在的按摩<form method="POST" class="form" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">    <input type="text" name="vehiclenum" placeholder="Search Multiple Separate by a Comma (,)">    <input type="submit" name="submit" Value="Search"></form><?php$vehiclenumerr = array();if ($_SERVER['REQUEST_METHOD']=="POST"){  $vehiclenum = $_POST["vehiclenum"];$exploded=explode(",",$vehiclenum);$explodedd=implode("','",$exploded) ;$sql = "SELECT * FROM vehicles WHERE num_vehicles IN('$explodedd')";$result = mysqli_query($conn, $sql);$num_query = mysqli_num_rows($result);if ($num_query > 0) { ?><table> <tr><th>Vehicle num</th><th>Description</th></tr><?php while($row = mysqli_fetch_assoc($result)) { ?><tr><td><?php echo $row['num_vehicles']; ?></td><td><?php echo $row['desc_vehicles']; ?></td></tr><?php   }   ?></table><?php } else { $vehiclenumerr[] ="Vehicle Number: ".$vehiclenum. " are NOT Exist";}}if(!empty($vehiclenumerr)){foreach ($vehiclenumerr as $error) {            echo $error;             echo "<br>";        }}?>我希望发现表格有 2 个结果(14409 和 14405)以及该注释的下方(车辆编号:14408 不存在)我得到了表成功,但没有不存在的注释。
查看完整描述

2 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

希望它会有所帮助:


  <?php while($row = mysqli_fetch_assoc($result)) { ?>

    <?php if($row['num_vehicles'] && $row['desc_vehicles']): ?>

      <tr>

      <td><?php echo $row['num_vehicles']; ?></td>

      <td><?php echo $row['desc_vehicles']; ?></td>

      </tr>

    <?php else: ?>

      <tr>

      <td><?php echo "Not exist" ?></td>

      <td><?php echo "Not exist" ?></td>

      </tr>

    <php endif; ?>

  <?php   }   ?>

或者您可以删除“不存在”字段。


查看完整回答
反对 回复 2021-10-15
?
浮云间

TA贡献1829条经验 获得超4个赞

感谢您的帮助,我找到了解决方案,所以我与您分享。


$vehiclenum = check_input($_POST["vehiclenum"]);

$exploded = explode(",",$vehiclenum); 

$countexploded = count($exploded);

for ($i = 0; $i < $countexploded; $i++) {

  if (!empty($exploded[$i])) {

    $sql = "SELECT * FROM vehicles WHERE num_vehicles='$exploded[$i]'";

    $result = mysqli_query($connect_db, $sql);

    $num_query = mysqli_num_rows($result);

    if ($num_query > 0) {

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

            // sort results here

       } 

    } else { $vehiclenumerr[] ="Vehicle Number: ".$exploded[$i]. " are NOT Exist";}

  }

}

编辑:我还添加了防止 sql 注入的功能::


function check_input($data){

    $data=trim($data);

    $data=stripcslashes($data);

    $data=htmlspecialchars($data);

    return $data;

}


查看完整回答
反对 回复 2021-10-15
  • 2 回答
  • 0 关注
  • 165 浏览

添加回答

举报

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