2017-06-06 2 views
-3

Ich versuche ein Listbox-Formular zu verwenden, um die Datenbank abzufragen, aber es wird nichts angezeigt. Die Idee ist, dass ich die Datenbank abgefragt habe, um das Formular mit den Namen von Vororten zu füllen, und dann, einen Vorort auswählend, wird die Datenbank wieder abfragen, um die Namen von Parks in diesem Vorort zurückzugeben. Wenn ich das Suchformular benutze, gibt es nichts zurück.Warum funktioniert mein Formular nicht?

das ist die Form:

<p>Select Suburb to search</p> 
    <form method="post" action="suburb_search.php" id="search"> 
    <select> 
    <?php while ($row = $result->fetch_assoc()) { ?> 
    <option value="suburb"> <?php echo $row['suburb']?></option> 
    <?php } 
    } ?> 
    </select> 
    <input type="submit" name="search" value="Search" /> 
    </form> 
    </div> 

Dies ist, wo es die Ergebnisse des Formulars sollte die Datenbank aber es funktioniert nicht abfragen:

<?php 
$searchRequest = False; 
if (isset($_GET['suburb'])){ 
    $search = $_GET['suburb']; 
    $sql2 = "SELECT * FROM park_list WHERE suburb=$search"; 
    $result2 = $db->query($sql2); 
if($message){ 
    echo "<p>$message</>"; 
} else { 
    ?> 
    <div class="form"> 
    <?php 
     while ($row2 = $result2->fetch_assoc()){ 
    ?> 
    <div class="results"> 
    <h2><?php echo $row2['park_name'];?></h2> 
     <?php 
    } 
    } 
    } ?> 
+1

ändern Sie Ihre Anfrage an SQL Injections verwundbar ist '(Vorort = $ search)' – Option

+0

Ihr 'select' Element das' name' Attribut fehlt Es wird also nichts gesendet, wenn Sie das Formular absenden. Und wahrscheinlich möchten Sie auch nicht für jede Option den gleichen Wert ausgeben, denn das macht unterschiedliche Auswahlmöglichkeiten sinnlos. – CBroe

+0

Sie scheinen sich auf den Wert zu stützen, der falsch ist. Das '