2016-10-13 115 views
1

我有一個網站,您可以在我的學校校園周圍導航。 例如a可以稱爲J2626/J2617等。用戶也可以搜索老師並找到他/她的房間。搜索文件:查詢輸入

我現在的問題是我想讓我的代碼檢查用戶是否輸入了數據庫中存在的正確房間,如果沒有,網站應該說這個房間或人員不在該校園中。

因爲現在如果我只鍵入「J」,它將顯示所有以J開頭的房間,那不是我希望我的網站工作的方式。如果在沒有輸入任何內容時按下搜索按鈕,該站點將顯示所有房間。

這裏是我的代碼:

<?php 

$fileName = dirname(dirname(__FILE__)) . "../../db/bth_nav.sqlite"; 

if (isset($_GET['page'])) { 
    $argument = $_GET['page']; 
    $argument = "%" . $argument . "%"; 

    $db = new PDO("sqlite:$fileName"); 
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); 

    $stmt = $db->prepare('SELECT * FROM bth_nav WHERE name LIKE 
    (:nameOwner) OR owner LIKE (:nameOwner);'); 
    $stmt->execute(array($argument)); 
    $res = $stmt->fetchAll(PDO::FETCH_ASSOC); 

    if (empty($res)) { 
     header("Location: " . "http://" . $_SERVER['index.php']); 
    } 
    ?> 

    <div class = "formObjectSearch"> 

     <?php foreach ($res as $val) { ?> 
       <div class = "infoTab"> 
        <h2><?= $val['name']; ?></h2> 
        <p>Guidance: <?= $val['info']; ?></p> 
        <p>Whos sitting here?: <?= $val['owner']; ?> 
       </div> 
       <img class = "buildingImage" src = "img/<?= 
       $val['image']; ?>" 
       <?php 
      } 
} 
       ?> 
      </div> 

這是我會檢查,如果我正確的:

if (empty($res)) { 
    header("Location: " . "http://" . $_SERVER['index.php']); 
} 

現在我有一個頭不工作,我曾嘗試不同勢這件事情如果沒有成功的話。我不希望它真的重定向,我希望它顯示「在這個校園裏沒有這樣的房間或人」。沒有重定向或顯示數據庫的全部內容。

有什麼建議嗎?我可能只是愚蠢的代碼。

謝謝。

+0

你的意思是區分大小寫的查詢? – Polar

回答

0

如果你想區分大小寫的搜索查詢,你可以使用BINARY例如

SELECT * FROMWHERE BINARY= 'value'