搜索文件:检查输入

时间:2016-10-13 11:40:41

标签: php

我有一个网站,您可以在我校的校园里浏览。 例如a可以称为J2626 / J2617等。用户还可以搜索老师并找到他/她的房间。

我遇到的问题是我希望我的代码检查用户是否输入了数据库中存在的正确房间,如果没有,网站应该说该校园中不存在房间或人。< / p>

因为现在如果我只键入“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']);
}

现在我有一个不起作用的标题,如果没有成功,我已尝试过不同的东西。我不希望它真正重定向,我希望它显示“这个校园里没有这样的房间或人”。并且无需重定向或显示数据库的全部内容。

有什么建议吗?我可能只是有愚蠢的代码。

感谢。

1 个答案:

答案 0 :(得分:0)

如果您想要区分大小写的搜索查询,可以使用BINARY,例如

SELECT * FROMWHERE BINARY {列{1}}