PHP MYSQL 搜索总是返回 0 个结果
PHP MYSQL search always brings back 0 results
您好,我正在尝试在 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';
}
}
为了匹配学校、学校名称或学校名称 1
您的查询需要读取为并删除开头 %
并仅保留尾随 %
WHERE SchoolName LIKE '$searchq%'"
现在,它找不到 School Name 和 School Name 1 的原因是它包含空格,而您的正则表达式没有替换这些空格。
$searchq = preg_replace("#[^0-9a-z]#i","",$searchq);
- 注释掉那行或修改正则表达式。
通过将其注释掉,您可以恢复使用:
WHERE SchoolName LIKE '%$searchq%'"
您好,我正在尝试在 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';
}
}
为了匹配学校、学校名称或学校名称 1
您的查询需要读取为并删除开头 %
并仅保留尾随 %
WHERE SchoolName LIKE '$searchq%'"
现在,它找不到 School Name 和 School Name 1 的原因是它包含空格,而您的正则表达式没有替换这些空格。
$searchq = preg_replace("#[^0-9a-z]#i","",$searchq);
- 注释掉那行或修改正则表达式。
通过将其注释掉,您可以恢复使用:
WHERE SchoolName LIKE '%$searchq%'"