2016-10-13 10 views
1

Ich habe eine Website, wo Sie auf dem Campus an meiner Schule navigieren können. Zum Beispiel kann ein J2626/J2617 und so weiter genannt werden. Der Benutzer kann auch nach Lehrer suchen und sein Zimmer finden.Suche Datei: Eingabe überprüfen

Das Problem, das ich habe, ist, dass ich Code überprüfen möchte, ob der Benutzer einen richtigen Raum in der Datenbank eingegeben hat, wenn nicht, sollte die Website sagen, dass das Zimmer oder die Person nicht auf diesem Campus existiert.

Weil jetzt, wenn ich nur "J" eintippe, werden alle Räume angezeigt, die mit J beginnen, und das ist nicht, wie ich will, dass meine Seite funktioniert. Und wenn ich die Suchschaltfläche drücke, wenn nichts eingegeben wird, zeigt die Site alle Räume an.

Hier ist mein Code:

<?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> 

Dies ist, wo ich überprüfen, wenn ich richtig bin:

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

Im Moment habe ich einen Header, die nicht funktioniert und ich habe versucht, diffrent Dinge in diesem wenn ohne Erfolg. Ich möchte nicht, dass es wirklich umgeleitet wird, ich möchte, dass es anzeigt "Es gibt keinen solchen Raum oder keine Person auf diesem Campus". Und ohne den gesamten Inhalt der Datenbank umzuleiten oder anzuzeigen.

Irgendwelche Vorschläge? Ich könnte nur dumm Code haben.

Danke.

+0

meinen Sie Groß- und Kleinschreibung Abfrage? – Polar

Antwort

0

Wenn Sie eine Groß- und Kleinschreibung Suchabfrage möchten, können Sie BINARY z.

SELECT * FROM Tabelle WHERE BINARY Spalte = 'value'