如果未选择任何选项,则显示所有结果

时间:2016-04-26 10:55:04

标签: php

下面是我经过严格修改的代码,请原谅我,如果你复制并粘贴以检查我的代码,可能会有错误,因为我修改了很多。

正如您所看到的,用户可能会输入一个级别,然后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

1 个答案:

答案 0 :(得分:1)

您需要为#!/usr/bin/env ruby class ChompedFileLines include Enumerable def initialize(filespec) @filespec = filespec end def each File.foreach(@filespec) { |line| yield line.chomp } end end # Exercise the class: FILESPEC = '/usr/share/dict/words' chomped_file_lines = ChompedFileLines.new(FILESPEC) puts; p chomped_file_lines; puts chomped_file_lines.first(10).each { |line| p line } chomped_file_lines_enum = ChompedFileLines.new(FILESPEC).to_enum puts; p chomped_file_lines_enum; puts 10.times { p chomped_file_lines_enum.next }

添加条件
level

此条件将确保仅当用户选择了某个级别时才会在数据库中检查$levelSQL = ! empty($level) ? " WHERE level = '$level'" : ''; $sql = "SELECT * FROM rooms " . $levelSQL;

如果用户没有选择级别,则会显示所有记录。