2017-01-06 53 views
0

我正在建立一個公交預訂系統,使用php & mysql。 在這裏,我試圖輸入搜索字段「路由」,這是mysql表的字段。 在搜索結果並將結果打印到頁面時似乎有問題。請幫助我。從Mysql數據庫創建一個php搜索

<?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; 
?> 
+1

_它似乎有問題在搜索和打印_你能更具體嗎?順便提一下,你的問題對sql注入具有很高的潛力。 –

+0

你是在說下拉搜索.. –

+0

它沒有顯示任何結果。沒有錯誤也。 – ragnar1992

回答

0

不知道問題出在哪裏,但與「=」的sql比較搜索完美匹配。嘗試使用「like」作爲 SELECT * FROM bus WHERE路由像'%$ serchq%' 也是,請逃避serchq,因爲你可以通過這種方式進行黑客攻擊。

0

在您的搜索表單中,您是否有(下拉式)輸入或簡單的文本輸入? 在您的sql查詢中,您正在搜索完全匹配。 如果這是您的問題,請考慮將「route ='$ serchq'」更改爲「route LIKE $ serchq」以獲得更廣泛的匹配。此外,引號不需要在$ serch周圍,所以消除它們可能會有所幫助。

+0

它是一個從同一張表獲取路線的下拉菜單。用戶有機會選擇路線,並根據他的選擇公交車應該顯示出來 – ragnar1992