我正在尝试编写一个搜索框,用于搜索数据库中的列。如果搜索与列匹配,则该记录将打印在下表中。
我正在搜索包含公司记录县的列。没有显示错误,但是当我搜索数据库中的某个县时,该表仍为空白。我无法理解我在理论上做错了什么我认为代码应该有效!任何帮助将不胜感激。
DBconnect.php
<?php
// connect to the database
$db = 'stylecraft_dev';
$host = 'localhost';
$user = 'stylecraft_admin';
$password = '000000';
$dbConn = mysql_connect($host,$user,$password) or die("Failed to connect to database");
$result = mysql_select_db($db, $dbConn) or die("Failure selecting database");
?>
form.php的
<?php
$sql = "SELECT * FROM member ";
if (isset($_POST['search'])) {
$search_term = mysql_real_escape_string($_POST['search-box']);
$sql .= "WHERE MB_COUNTY = '{$search_term}' ";
}
$query = mysql_query($sql) or die(mysql_error());
?>
<form name="search_form" method="POST" action="stockists.php">
Search: <input type="text" name="search_box" value=" "/>
<input type="submit" name="search" value="Search the stockists...">
</form>
<table width="70%" cellpadding="5" cellspace="5">
<tr>
<td><strong>Company Name</strong></td>
<td><strong>Website</strong></td>
<td><strong>Phone</strong></td>
<td><strong>Address</strong></td>
</tr>
<?php while ($row = mysql_fetch_array($query)) {?>
<tr>
<td><?php echo $row['MB_COMPANY'];?></td>
<td><?php echo $row['MB_MOBILE'];?></td>
<td><?php echo $row['MB_PHONE'];?></td>
<td><?php echo $row['MB_COUNTY'];?></td>
</tr>
<?php } ?>
</table>
答案 0 :(得分:0)
你这里有一个错字
$search_term = mysql_real_escape_string($_POST['search-box']);
必须根据您的表格
$search_term = mysql_real_escape_string($_POST['search_box']);
答案 1 :(得分:0)
尝试:
$search_term = mysql_real_escape_string($_POST['search_box']);
$sql .= "WHERE MB_COUNTY LIKE '%".$search_term."%'";
输入名称不匹配 - search-box
与search_box
:
$_POST['search-box']
和<input type="text" name="search_box" value=" "/>
您应该尝试回复$search_term
和$sql
进行调试。
答案 2 :(得分:0)
搜索框值中有一个空格。
<input type="text" name="search_box" value=" "/>
如果由于某种原因这不是故意的并且它是用搜索短语提交的话,则可能导致搜索没有成功,这意味着如果您正在搜索&#34; Mercedes&#34;但是提交一个类似&#34;的空间梅赛德斯&#34;因为空间不合适。
您可以修剪search_term $search_term = trim($search_term)
,也可以从value=" "
中删除该空格。
答案 3 :(得分:0)
这是您的代码$sql .= "WHERE MB_COUNTY = '{$search_term}' "
;
正确的代码是$sql .= " WHERE MB_COUNTY = '{$search_term}' ";
**&#34;之间的空间和where where子句**