0

mysqlデータベースのテーブルに1つのレコードがあります。次のPHPコードを使用してデータを取得します。

$result = mysql_query($query = "SELECT realname FROM t_user");

if($result)
{
  while($data=mysql_fetch_assoc($result)){
    echo $data['realname'];
  }
}

結果は表示されませんが、以下のようなdo-whileループを使用すると次のようになります。

if($result)
{
  $data=mysql_fetch_assoc($result);
  do{
    echo $data['realname'];
  } while($data=mysql_fetch_assoc($result));
}

結果が表示されたら、テーブルにもう1つのレコードを追加しようとしましたが、whileループでは、1つのデータレコード(最初のレコード)のみが表示され、do-whileループではすべてのデータが表示されます。何故ですか?コードが間違っているからですか?

4

2 に答える 2

0

あなたが示したコードはおそらくこの問題を示すことができないので、論理的な説明はこれです:

$result = mysql_query($query = "SELECT realname FROM t_user");

if($result)
{
  // Something fetched a row from $result before this statement is run
  while($data=mysql_fetch_assoc($result)){
    echo $data['realname'];
  }
}

2つの類似したコードをどのように比較しているかを見ると、2つの間に誤って何かを書いた可能性があります。

if($result)
{
  mysql_fetch_assoc($result);
  while($data=mysql_fetch_assoc($result)){
    echo $data['realname'];
  }
}
于 2012-11-21T04:04:26.803 に答える
0

$ result = mysql_query($ query = "SELECT realname FROM t_user");

if($ result){while($ data = mysql_fetch_assoc($ result)){echo $ data ["realname"]; }}

$result = mysql_query($query = "SELECT realname FROM t_user");
 var_dump($data);die;

ブラウザで結果の配列を確認してください。上記のwhileループは機能するはずです。結果を確認してください。

于 2012-11-21T04:04:59.840 に答える