2014-04-25 114 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