以下查询将用作搜索脚本.由于某种原因,在任何一个条件为真的情况下,它都不会返回所有结果.我究竟做错了什么?
$sql = "SELECT name, id_code from codes WHERE name LIKE '%$q%' OR id_code
LIKE '%$q%'";
$result = mysql_query($sql);
$query = mysql_query($sql) or die ("Error: ".mysql_error());
$num_rows1 = mysql_num_rows($result);
if ($result == "")
{
echo "";
}
echo "";
$rows = mysql_num_rows($result);
if($rows == 0)
{
print("
}
elseif($rows > 0)
{
while($row = mysql_fetch_array($query))
{
$name = htmlspecialchars($row['name']);
$code = htmlspecialchars($row['id_code']);
}
print("$code: $name
");
}
}
else{
echo '
}
解决方法:
您正在一阵子外面打印.这意味着,无论您获得多少结果,都只会打印出一个结果.
在循环内打印
while($row = mysql_fetch_array($query))
{
$name = htmlspecialchars($row['name']);
$code = htmlspecialchars($row['id_code']);
print("$code: $name
");
}
或在循环时将变量收集在数组中,并根据需要在循环后使用它们
$result_array = array();
while($row = mysql_fetch_array($query))
{
$name = htmlspecialchars($row['name']);
$code = htmlspecialchars($row['id_code']);
$result_array[] = array(
'name' => $name,
'code' => $code
);
}
print_r($result_array);
标签:php,search
来源: https://codeday.me/bug/20191013/1905358.html