我正在尝试创建一个下拉列表搜索来在 PHP 和 SQL 中搜索我的数据库。到目前为止,我已经能够创建一个简单的文本搜索,当我在搜索框中输入所需的结果时,它会返回所需的结果。但我希望能够从下拉列表中选择一个选项,而不是输入它。
这是我的 search.php 代码...
<?php
mysql_connect ("localhost", "root","") or die (mysql_error());
mysql_select_db ("schoolsni");
$term = $_POST['term'];
$sql = mysql_query("SELECT * FROM product WHERE model LIKE '%$term%'");
while ($row = mysql_fetch_array($sql)){
echo 'Product ID '.$row['product_id'];
echo '<br/> Model: '.$row['model'];
echo '<br/> quantity: '.$row['quantity'];
echo '<br/><br/>';
}
?>
这是我的 HTML 代码...
<div class="UFcol1">
<form action="search.php" method="post">
<select name="term">
<option value="product">product</option>
<option value="product1">product 1</option>
<option value="product3">product 3</option>
<option value="product4">product 4</option>
</select>
<input type="submit" name="submit" value="Submit" />
</form>
</div>
最佳答案
<?php
$mysqli = new mysqli( 'host', 'user', 'pass', 'table' );
if( $_POST['submit'] ){
$value = $mysqli->real_escape_string( $_POST['term'] );
$result = $mysqli->query("SELECT * FROM product WHERE model LIKE %$value%");
while( $row = $result->fetch_assoc() ){
echo $row['field'];
}
}else{
$results = $mysqli->query( "SELECT DISTINCT procucts.name from products WHERE products.stock = 1" );
$options = '<select>';
while( $row = $results->fetch_assoc( ) ){
$options .= "<option value='{$row['name']}'>$row['name']</option>";
}
$options .= '</select>';
?>
<div class="UFcol1">
<form action="search.php" method="post">
<?=$options?>
<input type="submit" name="submit" value="Submit" />
</form>
</div>
<?php } ?>
这是快速代码,可能不是 100% 正确,我还遗漏了诸如检查连接是否成功之类的内容。 php.net 有大量这方面的信息和示例。
编辑:从不同的数据库值添加自填充选项列表。
关于php - 创建下拉列表 PHP 数据库搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8296827/