0

すべてのMySQL結果の要約を表示するループがあります。これは、結果がどのようになるかを判断し、それを何度もループすることによって行われます。したがって、私のクエリに一致する43の結果がある場合、43の結果すべてを表示するのではなく、最初の結果を43回だけ表示します。助けてください!これが私のコードです:

if (empty($res)) {

echo 'No results found';

} else if($num>1){

    echo "<b>".$num_rows."<b> results found...<br>";

    while ($res = mysql_fetch_assoc($result)) {

    echo "<a href='#'>{$res['dealer']}</a><br>";

    }

} else {

echo "<table border=\"0\"><tr><td colspan=\"2\"><span class=\"dealer\">" . $res['dealer'] . "</span></td></tr><tr><td><span class=\"label\">Pin: </span><span class=\"inf\">" . $res['pin'] . "</span></td><td><span class=\"label\">OB CODE: </span><span class=\"ob\">" . $res['ob'] . "</span></td></tr><tr><td><span class=\"label\">Program Director:</span></td><td><span class=\"inf\">" . $res['contact'] . "</span></td></tr><tr><td valign=\"top\"><span class=\"label\">Address:</span></td><td><span class=\"inf\">" . $res['address'] . "<br>" . $res['city'] . ", " . $res['state'] . "<br>" . $res['zip'] . "</span></td></tr><tr><td><span class=\"label\">Dealer Phone:</span></td><td><span class=\"inf\">" . $res['phone'] . "</span></td></tr><tr><td><span class=\"label\">Codes Valid on:</span></td><td><span class=\"inf\">" . $res['website'] . "</span></td></tr></table>";

}

よろしくお願いします!

4

4 に答える 4

3

これは、最初の行のみをフェッチしたためです(取得したとき$res = mysql_fetch_assoc($result);)。あなたがやろうとしていることは実際には不要です:mysql_fetch_assoc()それが実行されるたびにデータポインタを自動的に前方に移動します。代わりにできること(そして実際には一般的な方法です)は次のとおりです。

//...
while ($res = mysql_fetch_assoc($result)) {
    echo "<a href='#'>{$res['dealer']}</a><br />";
}
//...

ちなみに、このmysql_*機能は間もなく非推奨になります。mysqliどちらかまたはPDO代わりに使用できます。(私のように)切り替えるコードがたくさんある怠惰な人なら、mysqli手続き型関数を使用できます-それらは元の関数とほとんど同じですmysql_*

于 2012-08-02T20:33:39.547 に答える
1

あなたは使用する必要があります

$res = mysql_fetch_assoc($result);

新しい行を取得するたびに

于 2012-08-02T20:31:14.950 に答える
1

ループでこれを行う必要があります。

$res = mysql_fetch_assoc($result);

...それ以外の場合は最初の結果のみを取得します。これを行う正しい方法は次のとおりです。

while($res = mysql_fetch_assoc($result)){
    echo "<a href='#'>".$res['dealer']."</a><br>";
    i++;
}

乾杯

于 2012-08-02T20:31:54.963 に答える
0

使用する:

while($res = mysql_fetch_assoc($result)) { echo $res['dealer']; }

于 2012-08-02T20:33:25.647 に答える