我有一个搜索表单来搜索用户名。我已经制作了SQL Wildcard LIKE,但它只打印一个用户名?我也尝试过,但它没有?
$besked = " ";
if(isset($_POST['submit'])){
if(!empty($_POST['username'])){
$username = $_POST['username'];
$getHeads = mysqli_query($mysqli, "SELECT * FROM user WHERE username LIKE '%".$username."%'") or die(mysql_error());
while($headInfo = mysqli_fetch_array($getHeads))
$besked = "<a href='member.php?id=".$headInfo['id']."'><font color='blue'><h3>".$headInfo['username']."</h3></font></a>";
} else
$besked = "No user found!";
}
答案 0 :(得分:0)
如果没有更多背景信息,很难找到造成问题的原因。但是,您提供的代码中存在很多错误,因此请先尝试修复它们。
为什么要用两个if
语句包装所有内容?只需使用&&
检查同一个if
中的两个变量。
您正在混合mysqli_*
和mysql_*
个功能。不要这样做,mysqli
和mysql
是两个不同的数据库抽象层,不应在您的应用程序中同时使用。
我可能会错误解释您的脚本,因此我会在下面编辑的代码中保持此部分不变,但您的if
语句正在检查两个变量是否已设置,如果不是,则告诉用户&#34;没有找到用户!&#34;。但是,这应该说的是,&#34;请输入一个搜索词,&#34;因为你实际上并没有搜索任何用户。
尝试编写更有条理的代码。你错过了一些花括号,这可能导致脚本刹车。
不是后端问题,但我觉得有必要提醒您不要使用<font>
标记。改用CSS。
$besked = " ";
if(isset($_POST['submit']) && !empty($_POST['username'])){
$username = $_POST['username'];
$getHeads = mysqli_query($mysqli, "SELECT * FROM user WHERE username LIKE '%".$username."%'") or die(mysqli_error());
while($headInfo = mysqli_fetch_array($getHeads)) {
$besked = "<a href='member.php?id=".$headInfo['id']."'><font color='blue'><h3>".$headInfo['username']."</h3></font></a>";
}
} else {
$besked = "No user found!";
}
// Echo out the result
echo $besked;