【发布时间】:2017-11-10 18:58:03
【问题描述】:
我正在尝试进行 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 LIKE '%bob smith%'不会匹配fname='bob'但fname LIKE '%bob%'会 -
我尝试使用两个变量作为名称,但它不起作用。
-
如果我理解正确,我需要使用两个不同的搜索字段来搜索名字和姓氏以及两个 php 变量?
-
fname LIKE '%bob% OR fname like %smith%' OR lname LIKE '%bob% OR lname like %smith%'但深入了解您获得的人数可能会得到意想不到的回报结果。您可能需要 2 个帖子字段,以便确定什么是名字,什么是姓氏,并非所有文化都使用相同的顺序。我可以看到有人在搜索“bob smith”或“smith bob”或“smith, bob”