2016-04-26 2 views
0

Ниже мой сильно измененный код. Так что простите меня, если вы скопируете и вставьте, чтобы проверить мой код, может быть ошибка, так как я ее сильно модифицировал.Показать все результаты, если опция не выбрана

Как вы можете видеть, пользователь может ввести уровень, а затем выход SQL должен показать все комнаты на этом уровне

Все прекрасно работает, за исключением 1 проблемы. Когда пользователь не вводит уровень (который ему разрешено делать), он должен видеть ВСЕ уровни. Таким образом, в основном ниже, он должен видеть каждую комнату на каждом уровне.

Но независимо от того, что я делаю, чтобы изменить инструкцию SQL или оператор $ _POST ['level'] Im не может получить то, что я хочу, чтобы он делал. Если пользователь не выбирает уровень, результаты не отображаются.

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 rooms WHERE level = $ level ";} else {$ sql =" SELECT * FROM rooms ";}' –

+0

что я думаю, что народы ждут ответа напрямую. Не интересно читать комментарии и делать то, что задается? –

ответ

1

Вам нужно добавить условие level

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

Это условие гарантирует, что level будет проверяться в базе данных, только если пользователь выбрал уровень.

Если пользователь не выбрал уровень, будут отображены все записи.

+0

Поскольку OP не заинтересован, так что я думаю, почему бы и нет? ваш ответ правильный +10 –

+0

Благодарим вас за повышение цены – Senbon

+0

@ Большое спасибо. :) – Pupil

Смежные вопросы