2016-04-26 6 views
0

Unten ist mein stark modifizierter Code, also vergib mir, wenn du kopierst und einfügst, um meinen Code zu überprüfen, könnte es einen Fehler geben, da ich es sehr geändert habe.Alle Ergebnisse anzeigen, wenn keine Option ausgewählt ist

Wie Sie ein Benutzer kann eine Ebene sehen und dann außer 1 Problem der Ausgabe von SQL sollten alle Räume auf dieser Ebene

Alles funktioniert gut zeigen. Wenn der Benutzer keine Level-Eingabe macht (was er tun darf), sollte er ALLE Level sehen. Also im Grunde sollte er jeden Raum von jedem Level aus sehen.

Aber egal was ich tue, um die SQL-Anweisung oder die Anweisung $ _POST ['level'] zu ändern Ich bin nicht in der Lage zu bekommen, was ich will, dass es zu tun. Wenn ein Benutzer keine Ebene auswählt, werden keine Ergebnisse angezeigt.

Level: <select id="level" name="level" size="1"> 
    <option selected="selected" disabled="disabled" value="">Please Select</option> 
    <option value"1">1</option> 
    <option value"2">2</option> 
    <option value"3">3</option> 
    <option value"4">4</option> 
</select> 
</p> 


<?php 
if (isset($_POST["submit"])) { 


if (empty($_POST["level"])) { 
    NULL; 
} 
else { 
    $level = $_POST["level"]; 
} 

$Con=mysqli_connect(*database*); 
if (!$Con) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 

$level = mysqli_real_escape_string($Con, $level); 
$sql = "SELECT * FROM rooms WHERE level = '$level'"; 
$rs = mysqli_query($Con, $sql) 
or die ('Problem with query' . mysqli_error($Con)); 

?> 
<table> 
<tr> 
    <th>Level</th> 
    <th>Rooms</th> 

</tr> 

<?php while ($row = mysqli_fetch_array($rs)) { ?> 
<tr> 
    <td><?php echo $row["level"]?></td> 
    <td><?php echo $row["rooms"]?></td> 
</tr> 

<?php 
+0

'if ($ level! == '') {$ sql =" SELECT * FROM Räume WHERE level = $ level ";} else {$ sql =" SELECT * FROM Räume ";}' –

+0

was ich denke das Die Menschen warten direkt auf die Antwort. Nicht daran interessiert, Kommentare zu lesen und zu tun, was gefragt wird? –

Antwort

1

Sie müssen Bedingung hinzufügen für level

$levelSQL = ! empty($level) ? " WHERE level = '$level'" : ''; 
$sql = "SELECT * FROM rooms " . $levelSQL; 

Diese Bedingung wird sichergestellt, dass level nur in der Datenbank überprüft werden, wenn der Benutzer einen Wert ausgewählt hat.

Wenn der Benutzer kein Level gewählt hat, werden alle Datensätze angezeigt.

+0

Da OP nicht interessiert ist, also denke ich, warum nicht ich? Ihre Antwort ist richtig +10 –

+0

Vielen Dank für die Klärung – Senbon

+0

@Anant, vielen Dank. :) – Pupil

Verwandte Themen