【发布时间】:2015-04-21 22:30:45
【问题描述】:
您好,我正在尝试在 php 中编写搜索功能,但我总是找到 0 个结果。
<?php
$mysqli = new mysqli('localhost', 'root', 'testing123', 'test')
if ($mysqli->connect_error) {
die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
}
//collect
$output = '';
if(isset($_POST['search'])){
$searchq = $_POST['search'];
$searchq = preg_replace("#[^0-9a-z]#i","",$searchq);
$query = mysqli_query($mysqli, "SELECT * FROM Users WHERE UsernameLIKE '%$searchq%'");
$count = mysqli_num_rows($query);
// if the $result contains at least one row
if ($query->num_rows > 0) {
// output data of each row from $result
while($row = $query->fetch_assoc()) {
}
}
else {
echo '0 results';
}
}
?>
任何想法如何解决?
编辑 1. 即使注释掉,这仍然无法解决。
if(!empty($_POST['search'])){
$searchq = $_POST['search'];
//$searchq = preg_replace("#[^0-9a-z]#i","",$searchq);
$query = mysqli_query($mysqli, "SELECT * FROM Users WHERE Username LIKE '$searchq%'");
$count = mysqli_num_rows($query);
// if the $result contains at least one row
if ($query->num_rows > 0) {
// output data of each row from $result
while($row = $query->fetch_assoc()) {
}
}
else {
echo '0 results';
}
}
【问题讨论】:
-
告诉我粘贴
SELECT * FROM School WHERE SchoolName LIKE '%Cal Poly%'是否返回任何内容(或一些类似的搜索词以获得结果)。 -
link php.net 上的这个注释可能会有所帮助。看起来你也调用了两次 num_rows,不认为这是必要的。
-
这应该可以。发布您的 HTML 表单。
-
@JoeM 那么问题出在搜索查询上,而不是这个页面上。你能从你的表中添加一个示例行吗?
-
在打开 PHP 标记后立即将错误报告添加到文件顶部,例如
<?php error_reporting(E_ALL); ini_set('display_errors', 1);,然后是其余代码,以查看它是否产生任何结果,以及 @987654326 @到mysqli_query()。