【问题标题】:Creating a php search from Mysql database从 Mysql 数据库创建 php 搜索
【发布时间】:2026-02-01 20:15:02
【问题描述】:

我正在使用 php 和 mysql 构建一个巴士预订系统。 在这里,我尝试输入搜索字段“路由”,它是 mysql 表的字段。 在搜索结果并将结果打印到页面时似乎有问题。请帮帮我。

<?php 
$connect=mysqli_connect("localhost","root","","tsms");
$output ='';
if(isset($_POST['from'])){
    $searchq = $_POST['from'];
    $query = mysqli_query("SELECT * FROM bus WHERE route='$serchq' ");
    $count = mysqli_num_rows($query);
    if($count==0){
        echo "<script>
alert('No bus services are found');
</script>"; 
    } else {
        while($row = mysqli_fetch_array($query)){
            $imageData = $row['image'];
            $arrival = $row['arrival_time'];
            $departure = $row['departure_time'];
            $type = $row['bus_type'];
            $class = $row['class'];
            $name = $row['bus_name'];
            $facilities = $row['facilities'];
            $reservation = $row['reservation_fee'];
            $output = '<div>'.$arrival.''.$departure.''.$type.''.$class.''.$name.''.$facilities.''.$reservation.'</div>';
        }
    }
}
echo $output;
?>

【问题讨论】:

  • 搜索和打印好像有问题 能说的具体点吗?顺便说一句,您的问题很有可能被 sql 注入。
  • 你说的是下拉搜索吗..
  • 它没有显示任何结果。也没有错误。

标签: php search mysqli


【解决方案1】:

不知道问题出在哪里,但是用“=”的sql比较搜索了一个完美的匹配。尝试使用“喜欢”作为 SELECT * FROM bus WHERE route like '%$serchq%' 另外,一定要避开 serchq,因为这样你可能会被黑客入侵。

【讨论】:

    【解决方案2】:

    在您的搜索表单中,您有(下拉)输入还是简单的文本输入? 在您的 sql 查询中,您正在搜索完全匹配。 如果这是您的问题,请考虑将“route='$serchq'”更改为“route LIKE $serchq”以获得更广泛的匹配。此外,$serch 周围不需要引号,因此消除它们可能会有所帮助。

    【讨论】:

    • 这是一个从同一个表中获取路由的下拉列表。用户有机会选择路线,并根据他的选择显示公交车