2016-11-21 117 views
-2

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

,这里用户名需要被搜索。 –

+0

然后添加 Blinkydamo

回答

0

您从未将$username设置为任何有意义的值。

$username=""; 
//... 
$output .= '<div><a href= "profile.php?u=$username">'.$fname.' '.$lname.'</a></div>'; 

因此所产生的链接将是:

profile.php?u= 

,或者,如果变量没有被扩大,然后将得到的链接将是:

profile.php?u=$username 

(您可以在您的浏览器中对此进行验证。)

该页面做了什么以及当没有时决定显示什么内容提供的值(或无效值)取决于该页面上的代码。

+0

它甚至没有正确搜索 –

+0

@sanchitg:也许你可以对你想描述的问题更具体一些? – David

1

您没有设置用户名变量

变化:

<a href= "profile.php?u=$username">' 

$output .= "<div><a href='profile.php?u=$username'>$fname $lname</a></div>"; 
+0

语法错误,意外'$用户名'(T_VARIABLE) –

+0

尝试一下,你是混合单引号和双引号 – Blinkydamo

+0

万岁它的工作! 但仍然出现一个错误,在搜索的用户上的一些简档内容没有被显示,而是显示登录的用户简档内容 –