0

配列の最初の行のみを返すように見えることを除いて、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;
4

2 に答える 2

2

ループの繰り返し$hintごとに変数を上書きしています。whileの前に宣言してみてくださいwhile(現在の場所を削除してください)

$hint = "";
while($a = mysql_fetch_array($res,MYSQL_BOTH))
{
于 2012-06-07T14:02:45.097 に答える
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;
?>
于 2012-06-07T14:05:56.743 に答える