2014-04-25 47 views
0

我的代碼應該打印出找到的所有用戶的用戶名,但它不會,只打印一次「找到用戶:」。請幫我修復它;這是我的代碼,謝謝!不顯示搜索用戶名?

<?php 
echo' 
<form method="post"> 
<input name="newSearch" id="newSearch" class="inputs" placeholder="Search for a user..."> 
<input type="submit" id="submit_search" name="submit_search" class="button" value="Search"> 
</form>'; 
if ($_POST['submit_search']) { 
$search = $_POST['newSearch']; 
$getUser = mysql_query("SELECT * FROM Users WHERE Username LIKE '%$search%'"); 
while($id=mysql_fetch_assoc($getUser)){ 
$gU = mysql_fetch_object($getUser); 
echo "User Found: ", $gU->Username, "<br />"; 
} 
} 
?> 
+4

'addslashes()',使用復古的代碼? –

+1

@DavidHoude函數名在PHP中不區分大小寫,因此它是有效的 –

+0

也不知道。刪除它,現在它只顯示一些用戶 – Sam

回答

1

嘗試任何的下方,

while($id=mysql_fetch_assoc($getUser)){ 
echo "User Found: ". $id["Username"]. "<br />"; 
} 

OR,

while($gU = mysql_fetch_object($getUser)){ 
echo "User Found: ". $gU->Username . "<br />"; 
} 

上述任何代碼都可以幫助您保住自己的狀況。 :)

+0

工作,謝謝! – Sam

0
echo "User Found: " . $gU->Username . "<br />" 

應該是:

echo "User Found: " . $id["Username"] . "<br />" 

編輯:

你應該選擇數組或對象的工作,請查看:http://stackoverflow.com/questions/1536813/mysql-fetch-array-mysql-fetch-assoc-mysql-fetch-object的差異。我還建議你不要使用折舊的代碼。

使用對象

工作:使用Array

while($id=mysql_fetch_object($getUser)){ 
    echo "User Found: " . $id->Username . "<br />"; 
} 

工作:

while($id=mysql_fetch_assoc($getUser)){ 
    echo "User Found: " . $id["username"] . "<br />"; 
} 
+0

這使它工作0%,它與一半的名稱與$ gU->用戶名 – Sam

+0

@Sam我的道歉,我爲此編輯了答案。 – Skewled

0

你與循環的每次迭代經歷兩個記錄。 mysql_fetch_assocmysql_fetch_object每個抓取記錄並將指針增加到記錄集中。你幾乎肯定想要。

你幾乎肯定希望:

while($gU=mysql_fetch_object($getUser)){ 
    echo "User Found: " . $gU->Username . "<br />"; 
} 

while($gU=mysql_fetch_assocc($getUser)){ 
    echo "User Found: " . $gU["Username"] . "<br />"; 
} 
+0

這兩個都沒有工作 – Sam