我正在寻找执行以下操作:
- 在我的主页上有一个搜索表单,它允许我在客户数据库中搜索他们的名字。然后创建一个包含结果的组合框。
我有以下 php 文件。search.php 包含用于查询数据库并将其保存到会话数组中的代码。
<?php
include 'newCustomer.php';
connect('final');
$query = $_POST['searchDB'];
$query = htmlspecialchars($query); // stop HTML characters
$query = mysql_real_escape_string($query); //stop SQL injection
$data = mysql_query("SELECT * FROM customer WHERE First_Name LIKE '$query'") ;//query the DB with search field in colleumn selected//
if($data === FALSE) {
$error = 'Query error:'.mysql_error();
echo $error;
}
else
{
$test = array();
$colNames = array();
while($results = mysql_fetch_assoc($data)){// puts data from database into array, loops until no more
$test[] = $results;
}
$anymatches = mysql_num_rows($data); //checks if the querys returned any results
if ($anymatches != 0) {
$_SESSION['names']=$test;
$colNames = array_keys(reset($test));
}
if ($anymatches == 0)
{
echo "Sorry, but we can not find an entry to match your query<br><br>";
}
}
//header("location: newCustomer.php");
//die
?>
以及我主页中的以下代码,它使用数组创建名称组合框。
if (isset($_SESSION['names'])){
echo "Customers";
$array1 = $_SESSION['names'];
echo'<select name="customers>';
foreach($array1 as $name){
echo'<option value="'.$name["First_Name"].'">'.$name["First_Name"].'</option>';
}
echo'</select>';
}
?>
一旦提交了包含搜索参数的表单,就会执行 search.php 操作。
我的数据库具有以下名称。
丹·史密斯丹·汤姆·丹·丹·吉姆·史密斯吉姆·汤姆·吉姆·吉姆。
但是,当我搜索 dan 时,当我搜索 Jim 时,组合框是由 Dan 重复 24 次创建的,它是由 Jim 列出两次创建的……为什么它会产生如此看似随机的结果?
谢谢,