2016-04-26 77 views
0

下面是我经过大量修改的代码,所以请原谅我,如果您复制并粘贴来检查我的代码有可能是错误的,因为我修改了很多。如果没有选项显示所有结果

正如你可以看到,用户可以输入一个水平,然后SQL的输出应显示在该级别的所有客房除1个问题

一切都很正常。当用户没有任何级别输入(他被允许执行)时,他应该看到所有级别。因此,基本上他应该看到每个级别的每个房间。

但无论我做什么改变SQL语句或$ _POST ['level']语句我都无法得到我想要的结果。如果用户没有选择一个级别,则不显示任何结果。

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