2

DBからデータを取得してページに出力しようとしています。次の選択を使用します:

$tableIndex=mysql_query('SELECT table_index FROM table_names');

ループを使用しwhileて印刷すると、問題ありません。コード:

while($row = mysql_fetch_array($tableIndex) ){
        echo $row[0].'<br>';}

結果:

1st

2nd

3rd

しかし、whileループがなければ、配列の最初の要素だけが得られます。

コード:

$row = mysql_fetch_array($tableIndex);
    echo $row[0].'<br>';
    echo $row[1].'<br>';
    echo $row[2].'<br>';

結果:

1st

_

_

(「_」は空白)

なぜそれが奇妙に機能するのか、誰か説明できますか?

4

2 に答える 2

2

ループがループするたびに、このコードが再度実行されます。

$row = mysql_fetch_array($tableIndex);

したがって、毎回 $row が新しい値を取得します。ループなしの等価物は次のようになります。

$row = mysql_fetch_array($tableIndex);
echo $row[0].'<br>';
$row = mysql_fetch_array($tableIndex);
echo $row[0].'<br>';
$row = mysql_fetch_array($tableIndex);
echo $row[0].'<br>';
于 2013-06-10T11:42:44.223 に答える