php - mysqli 搜索仅适用于 1 个参数

标签 php mysql search mysqli

我正在尝试执行类似 mysqli 搜索的查询,以根据名字和姓氏进行搜索。当我在搜索中输入名字和姓氏时,没有得到任何结果。但是,当我仅输入名字或姓氏时,我会得到结果。

这是我的代码:

<?php
if (isset($_POST['search'])) {
$name = $_POST['search'];
$sql = "SELECT * FROM users WHERE fname LIKE '%$name%' OR lname LIKE '%$name%'";
$res = mysqli_query($conn, $sql);

}
while ($row = mysqli_fetch_assoc($res)) {
    $fname = $row['fname'];
    $lname = $row['lname'];
    $city = $row['city'];
    $state = $row['state'];
    $id = $row['id'];
    $url = '<a href ="profile/?id='.$id.'">';
    if ($id !== ($_SESSION['id'])){
    $pic = "SELECT profilephotopatch FROM users WHERE id = '$id'";
    $res = mysqli_query($conn, $pic);
    $row = mysqli_fetch_assoc($res);
    $picloc = $row['profilephotopatch'];
    $displaypic = '<div id="userphoto"><img src="../'.$picloc. '"style="width: 100%;max-height: 100%"></div>';
    $output = $displaypic. $url. '<div id="name">'. $fname. ' '. $lname. ' '. $city. $state. '</a></div><br>';
 echo ($output);
}
 }
 ?>

预先感谢您的帮助!

最佳答案

当您同时输入名字和姓氏时,我相信您的代码将尝试从 fnamelname 列中查找全名,这当然不会给您结果。

例如,您在 fname 列中将姓名“John Doe”存储为“John”,在 lname 列中存储为“Doe”。

当您使用“John”或“Doe”查找时,您会在 fnamelname 中找到它。但对于 fullname,这两列都不满足标准并且不会产生任何结果。

关于php - mysqli 搜索仅适用于 1 个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44446250/

相关文章:

search - 重要条款导致 CircuitBreakingException

php - 如何将PDF签名写入MySQL数据库

javascript - PHP 中的客户端时间

php - 显示来自 MySQL 的表和链接以从数据库中删除每一行

php - 为什么 COALESCE 订单结果会这样?

mysql - Rails mySQL 中的绑定(bind)参数为空

arrays - 如何在有序矩阵中高效搜索?

php - Grocery Crud - 在表单提交上打印 post_array

mysql - 使用 Sequel table_name.all 时获取行的结果

algorithm - 搜索算法 : Parsing and processing a request OOP style