【发布时间】:2017-04-07 14:46:58
【问题描述】:
我正在尝试使用 PHP 通过 HTML 表单从我的数据库中显示结果。用户单击提交按钮后,根据他们在每个字段中输入的内容,应相应地显示结果。
例如如果我点击下拉菜单中的“房间”,当我在价格文本字段和其余字段中指定某个价格时,应该显示与我搜索的内容相关的任何内容。
我能够为下拉菜单执行此操作,但我不知道如何输入多个值,当我单击提交时,它会相应地生成数据。
这是我到目前为止所做的:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form action="dropdown2.php" method="POST">
<select name="testing" type="text">
<option value="Choose">Choose type of stay</option>
<option value="Flat">Flat</option>
<option value="Room">Room</option>
<option value="Apartment">Apartment</option>
<option value="Villa">Villa</option>
</select>
<p></p>
<table>
<tr>
<td width="14%" class="label">Minimum Price MYR</td>
<td width="42%"><input type="text" name="textfield4" id="textfield4" class="text" /></td>
<td class="label">Maximum Price MYR</td>
<td><input type="text" name="textfield2" id="textfield2" class="text" /></td>
</tr>
<tr>
<td class="label">Bed Rooms</td>
<td>
<label>
<input type="text" name="search" id="textfield5" class="text smalltextarea" />
</label>
</td>
<td class="label">Bathrooms</td>
<td><input type="text" name="textfield3" id="textfield3" class="text" /></td>
</tr>
</table>
<p></p>
<input type="submit" value="Submit" name="submit">
</form>
<?php
mysql_connect("localhost", "root", "") or die("Error connecting to database: ".mysql_error());
mysql_select_db("test") or die(mysql_error());
if(isset($_POST['testing'])){
$query = $_POST['testing'];
$min_length = 3;
if(strlen($query) >= $min_length){
$query = htmlspecialchars($query);
$query = mysql_real_escape_string($query);
$raw_results = mysql_query("SELECT * FROM rooms
WHERE (`name` LIKE '%".$query."%') OR (`price` LIKE '%".$query."%') OR (`description` LIKE '%".$query."%')") or die(mysql_error());
if(mysql_num_rows($raw_results) > 0){
while($results = mysql_fetch_array($raw_results)){
echo "<p><h3>".$results['name']."</h3>"."RM " .$results['price']."</p>"."<p>".$results['description']."</p>";
}
}
else{
echo "No results";
}
}
else{
echo "Minimum length is ".$min_length;
}
}
?>
</body>
</html>
我是 PHP 和 MySQL 的新手...感谢任何帮助!
【问题讨论】:
-
<select name="testing" type="text">- 失败. -
...
<select>没有类型。 -
您需要动态生成查询。您应该升级驱动程序并使用参数化查询。存储数据时你使用
htmlspecialchars吗? -
您也没有使用任何(其他)$_POST 进行选择/输入。正如我已经说过的那样,
<select>中的那种类型在这里失败了。