搜索建议程序的简单 PHP/Ajax - 仅显示完整输入的数据库的结果
Simple PHP/Ajax for a search suggestion program - only displaying results from database typed in full
所以我的问题很简单。我是一个 PHP 初学者(一般来说是菜鸟程序员,3 个月前开始),我一直在关注一些关于如何构建 "search suggestion" 系统的教程,如果你想要什么,它会检查数据库重新输入就像其中的任何内容一样,并使用 AJAX.
实时显示结果
它正在部分工作。例如,当我输入完整的用户名时,它会显示结果。但当我输入一半或第一个字母时却不是。
<?php
require 'connect.php';
if (isset($_GET['searchText'])) {
$searchText = $_GET['searchText'];
}
if($query = $db->prepare("SELECT user_name FROM users WHERE user_name LIKE ?")) {
$query->bind_param('s', $searchText);
$query->execute();
$query->bind_result($searchTextResult);
while ($query->fetch()) {
echo $searchTextResult;
}
}
?>
此外,由于我是一个十足的菜鸟,所以我很乐意就代码提出任何建议,只是为了了解我是否总体上采用了良好的做法。我听说 binding 和 mysqli 被推荐,所以我试着坚持使用它们,我很少受到任何批评。
部分搜索参数的sql查询是这样的:
"select user_name FROM users WHERE user_name LIKE CONCAT('%',?,'%')"
感谢大家的所有回答。这是我第一次使用 Whosebug,我很喜欢。我希望有一天我能return帮个忙。
我所要做的就是在开始时将“%”添加到 $searchText var 中,然后一切 运行 顺利进行。
现在正确的代码如下:
<?php
require 'connect.php';
if (isset($_GET['searchText'])) {
$searchText = $_GET['searchText'] . '%';
}
if($query = $db->prepare("SELECT user_name FROM users WHERE user_name LIKE ?")) {
$query->bind_param('s', $searchText );
$query->execute();
$query->bind_result($searchTextResult);
while ($query->fetch()) {
echo $searchTextResult . "<br />";
}
}
?>
所以我的问题很简单。我是一个 PHP 初学者(一般来说是菜鸟程序员,3 个月前开始),我一直在关注一些关于如何构建 "search suggestion" 系统的教程,如果你想要什么,它会检查数据库重新输入就像其中的任何内容一样,并使用 AJAX.
实时显示结果它正在部分工作。例如,当我输入完整的用户名时,它会显示结果。但当我输入一半或第一个字母时却不是。
<?php
require 'connect.php';
if (isset($_GET['searchText'])) {
$searchText = $_GET['searchText'];
}
if($query = $db->prepare("SELECT user_name FROM users WHERE user_name LIKE ?")) {
$query->bind_param('s', $searchText);
$query->execute();
$query->bind_result($searchTextResult);
while ($query->fetch()) {
echo $searchTextResult;
}
}
?>
此外,由于我是一个十足的菜鸟,所以我很乐意就代码提出任何建议,只是为了了解我是否总体上采用了良好的做法。我听说 binding 和 mysqli 被推荐,所以我试着坚持使用它们,我很少受到任何批评。
部分搜索参数的sql查询是这样的:
"select user_name FROM users WHERE user_name LIKE CONCAT('%',?,'%')"
感谢大家的所有回答。这是我第一次使用 Whosebug,我很喜欢。我希望有一天我能return帮个忙。
我所要做的就是在开始时将“%”添加到 $searchText var 中,然后一切 运行 顺利进行。
现在正确的代码如下:
<?php
require 'connect.php';
if (isset($_GET['searchText'])) {
$searchText = $_GET['searchText'] . '%';
}
if($query = $db->prepare("SELECT user_name FROM users WHERE user_name LIKE ?")) {
$query->bind_param('s', $searchText );
$query->execute();
$query->bind_result($searchTextResult);
while ($query->fetch()) {
echo $searchTextResult . "<br />";
}
}
?>