2016-11-21 162 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

萬歲它的工作! 但仍然出現一個錯誤,在搜索的用戶上的一些簡檔內容沒有被顯示,而是顯示登錄的用戶簡檔內容 –