2011-08-08 6 views
1

私のスクリプトに問題があります。作品複数のwhileステートメント - どのように

<?php 
$r=mysql_query("SELECT * FROM memberships WHERE id!='".$userdata['membership']."'"); 

while($md = mysql_fetch_assoc($r)): 
    echo '<td class="header">'.$md['name'].'</td>'; 
endwhile; 
?> 

は、私はこれを持っています。しかし、ページをさらに下げると、私はこれを追加します:

<?php 
while($md = mysql_fetch_assoc($r)): 
    echo '<td class="result">'.$md['number_of_ads'].'</td>'; 
endwhile; 
?> 

何も出力しません。どうして?

+1

あなたはすでに最初から繰り返してきたようですので、決して2番目のものには入れません。 2番目のループを入力するには、mysql_fetch_assoc($ r)をリセットする必要があります。 – jadarnel27

答えて

8

フェッチする要素がもうないためかもしれません。ないあなたが達成しようとしているが、あなたは最初から戻ってデータを取得したい場合は、あなたが2番目のコードブロックの前にこれを追加するために必要なものを確認してください。先頭に内部ポインタをリセットします

mysql_data_seek($r, 0); 

+0

+1息子。私自身の前にそれを手に入れました。ここでの主なポイントは 'mysql_data_seek()'の使用です。彼は結果セットの終わりに達しているので、OPは新しい結果を得ていません。 – Bojangles

+0

また、参照先:http://php.net/manual/en/function.mysql-data-seek.php – Bojangles

+0

これはそれでした!ページ上のデータ乗算時間をリセットし続けるのは避けられますか? (私はいくつかのwhileループが必要です) –

1

$rからすべての行をフェッチすると、それを連続して呼び出しても行は返されません。

ので、ループが終了している間、クエリ結果からフェッチするものは第二のループではありません最初の

1

fetch_association機能は、結果セットから行を描画します。最初のwhileは結果セットをループします。そのデータを2回ループさせたい場合は、データをリセットする必要があります。

関連する問題