我创建了一个非常基本的搜索代码,用于从数据库中搜索用户并将其显示在页面上。在从数据库中获取数据并显示数据时,一切顺利,但错误是被点击的搜索结果用户没有显示相应的用户配置文件。相反,它会显示名称为$username
的随机配置文件,这是由于以下代码行所致:
$output .= '<div><a href= "profile.php?u=$username">'.$fname.' '.$lname.'</a></div>';
请检查以下代码,并帮助我打开正在搜索的相应用户的个人资料。
<?php
$username="";
$output = '';
if (isset($_POST['search'])){
$search_query = $_POST['search'];
$search_q = $_POST['search'];
$search_query = preg_replace("#[^0-9a-z]#i","", $search_query);
$search_q = preg_replace("#[^0-9a-z]#i","", $search_q);
$query = mysql_query("SELECT * FROM users WHERE username LIKE '%$search_query%' OR last_name LIKE '%$search_query%'") or die ("Could not search");
$count = mysql_num_rows($query);
if($count == 0) {
$output = 'No Results Found.';
}
else{
while($row = mysql_fetch_array($query)){
$fname = $row['first_name'];
$lname = $row['last_name'];
$id = $row['id'];
$output .= '<div><a href= "profile.php?u=$username">'.$fname.' '.$lname.'</a></div>';
}
}
}
?>
<?php echo("$output");?>
答案 0 :(得分:1)
您没有设置用户名变量
更改:
<a href= "profile.php?u=$username">'
要
$output .= "<div><a href='profile.php?u=$username'>$fname $lname</a></div>";
答案 1 :(得分:0)
您永远不会将$username
设置为任何有意义的值。
$username="";
//...
$output .= '<div><a href= "profile.php?u=$username">'.$fname.' '.$lname.'</a></div>';
结果链接将是:
profile.php?u=
或者,如果变量未被展开,那么结果链接将是:
profile.php?u=$username
(您可以在浏览器中对此进行验证。)
当没有提供u
值(或无效值)时,该页面的作用以及决定显示内容的方式取决于该页面上的代码。