使搜索结果更好

时间:2016-11-21 15:00:38

标签: php mysql

我创建了一个非常基本的搜索代码,用于从数据库中搜索用户并将其显示在页面上。在从数据库中获取数据并显示数据时,一切顺利,但错误是被点击的搜索结果用户没有显示相应的用户配置文件。相反,它会显示名称为$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");?>

2 个答案:

答案 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值(或无效值)时,该页面的作用以及决定显示内容的方式取决于该页面上的代码。