gpt4 book ai didi

php - 请帮助使用 LIKE 运算符在 MySQL 和 PHP 之间搜索结果

转载 作者:行者123 更新时间:2023-11-29 06:39:31 24 4
gpt4 key购买 nike

我想在我的网站上创建一个搜索栏来搜索用户名。在我的数据库上使用 mysql 时,代码工作正常,但是当我在我的网站上使用它时,结果不一样或根本不起作用。不确定是否缺少我的设置。任何帮助都会很棒。

在 mysql 数据库中这有效。

SELECT * 
FROM `users`
WHERE username LIKE '%neva%'

这将返回名为 Nevada 的用户。

在我的网站上这不起作用。

$friendquery = "neva"

if(isset($_GET['friendquery']){
$friendquery = preg_replace("/[^0-9a-zA-Z ]/", "", $_GET['friendquery']);
$sql = "SELECT * FROM users WHERE username LIKE '%$friendquery%'";

$query = mysqli_query($db_connect, $sql);
$u = $row["username"];
echo $u;
}

这不会返回任何内容。是的,我已连接到数据库。

奇怪的是,有些名称有效,有些则无效。就像我说的那样,任何帮助都会很棒。

最佳答案

您的 php 条件有误,因此控制根本不会执行 SQL

这里是错误:

(isset($_GET['friendquery'])

你需要额外的右大括号 => )

所以条件应该是:

if(isset($_GET['friendquery']))
/* notice extra closing ^^ braces */

此外

$friendquery = "neva"

if(isset($_GET['friendquery']))

^^ 如果你没有从 url 中获取 friendquery,这个条件一定会失败......所以,如果你想执行它与 $friendquery = "neva ",然后,使用

if($friendquery != "")

最后:

$row = mysqli_fetch_array($query)

您的代码中也缺少。

所以最终代码应该是:

if(isset($_GET['friendquery'])){ /* close extra brackets*/
$friendquery = preg_replace("/[^0-9a-zA-Z ]/", "", $_GET['friendquery']);
$sql = "SELECT * FROM users WHERE username LIKE '%$friendquery%'";

$query = mysqli_query($db_connect, $sql);
$row = mysqli_fetch_array($query) /* fetch array */
$u = $row["username"];
echo $u;
}

关于php - 请帮助使用 LIKE 运算符在 MySQL 和 PHP 之间搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22318075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com