2016-10-13 73 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'