我正在尝试执行类似 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);
}
}
?>
预先感谢您的帮助!
最佳答案
当您同时输入名字和姓氏时,我相信您的代码将尝试从 fname
和 lname
列中查找全名,这当然不会给您结果。
例如,您在 fname
列中将姓名“John Doe”存储为“John”,在 lname
列中存储为“Doe”。
当您使用“John”或“Doe”查找时,您会在 fname
或 lname
中找到它。但对于 fullname,这两列都不满足标准并且不会产生任何结果。
关于php - mysqli 搜索仅适用于 1 个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44446250/