我有一个ajax实时搜索脚本工作,只是它似乎只返回数组的第一行。不知道它是否与我的循环有关,但是,如果有人能发现错误,会非常感谢帮助,因为我似乎无法找到它。我不包括javascript因为我很确定这不是错误,因为php文件正在解雇。它只是回应第一个命中而不是通过其他命中。
//run query on dbase then use mysql_fetch_array to place in array form
while($a = mysql_fetch_array($res,MYSQL_BOTH))
{
//lookup all hints from array if length of q>0
if (strlen($q) > 0)
{
$hint="";
for($i=0; $i<count($a); $i++)
{
if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
{
$n = $a['first']." ".$a['last'];
if ($hint=="")
{
$hint='<a href="mailto.php">'.$n.'</a>';
}
else
{
$hint=$hint.'<br><a href="mailto.php">'.$n.'</a>';// we do not seem to get here
}
}
}
}
// Set output to "no suggestion" if no hints were found
// or to the correct values
}//close while fetch
echo $hint;
答案 0 :(得分:2)
您在每个$hint
循环迭代中覆盖了while
变量。尝试在while
之前声明它(删除你现在的位置)
$hint = "";
while($a = mysql_fetch_array($res,MYSQL_BOTH))
{
答案 1 :(得分:1)
尝试使用此方法:
<?
$output = '';
while($a = mysql_fetch_array($res,MYSQL_BOTH)) {
if (strlen($q) > 0) {
for($i=0; $i<count($a); $i++) {
if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q)))) {
$n = $a['first']." ".$a['last'];
if ($output == "") {
$output = '<a href="mailto.php">'.$n.'</a>';
} else {
$output .= '<br><a href="mailto.php">'.$n.'</a>';
}
}
}
}
}
echo $output;
?>