phpのforeachループの問題

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-23 13:49:55
オリジナル
1130 人が閲覧しました

私は C# で作業しており、空いた時間に PHP を学んでいますが、明らかに mysql_fetch_array を使用して読み取られる foreach ループなど、常に問題があります

配列に到達すると、foreach ループの結果が表示されますは間違っていますが、while ループは問題ありません。以下は簡単なコードです
$query = "SELECT * FROM mytable";
$rows=mysql_fetch_array result);
foreach($rows as $val)
{
名前: ;
年齢: ;
}


ディスカッションへの返信 (解決策)

mysql_fetch_array は 1 次元の配列を返すため、そのようにトラバースするのは当然間違っています。 print_r($rows); すれば分かります。

mysql_fetch_array は 1 次元配列を返すため、そのように走査するのは当然間違っています。 print_r($rows); すれば分かります。


それでは、foreach は配列を 1 次元配列と 2 次元配列に読み込むのでしょうか?
foreach は配列の最初の次元をループします

$rows=mysql_fetch_array($result); $rows は 1 次元配列です
in foreach($rows as $val) $val は配列ではなく値です。 $val['name'] のようなものはありません

あなたはこれをやりたいと思います:

while($row=mysql_fetch_array($result)){   $rows[] = $row;}foreach($rows as $val){   姓名:<?php echo $val['name'];?>;   年龄:<?php echo $val['age'];?>;}
ログイン後にコピー
ログイン後にコピー

$rows=mysql_fetch_array($result);

返されるのは 2 次元の配列ではありません。 -次元配列なので、このような走査には問題があります

foreach は配列の最初の次元をループします

$rows=mysql_fetch_array($result); その後、$rows は 1 次元配列になります
foreach( $rows as $val) ここで、$val は値であり、配列ではありません。 $val['name'] などはありません。


ああ、ありがとう、さらに理解できました

これが欲しいと思います:

while($row=mysql_fetch_array($result)){   $rows[] = $row;}foreach($rows as $val){   姓名:<?php echo $val['name'];?>;   年龄:<?php echo $val['age'];?>;}
ログイン後にコピー
ログイン後にコピー


foreach を使用してデータをループアウトしたいのですが、 foreach も使用してください。 while ループが 2 つあります。問題があります

foreach は配列のみをループできます

for ループを使用できます

$result = mysql_query($query);for(; $val=mysql_fetch_array($result); ){ ?>   姓名:<?php echo $val['name'];?>;   年龄:<?php echo $val['age'];?>;<?php }
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

foreach は配列のみをループできます

for ループを使用できます

$result = mysql_query($query);for(; $val=mysql_fetch_array($result); ){ ?>   姓名:<?php echo $val['name'];?>;   年龄:<?php echo $val['age'];?>;<?php }
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

以上です。

foreach は配列のみをループできます

for ループも使用できます

$result = mysql_query($query);for(; $val=mysql_fetch_array($result); ){ ?>   姓名:<?php echo $val['name'];?>;   年龄:<?php echo $val['age'];?>;<?php }
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

ご指導ありがとうございます、わかりました、この問題は長い間私を悩ませてきました、笑
$rows=mysql_fetch_array($result) ; 1 行しか取得できません ただし、foreach は、各フィールドの内容ではなく、行内の各フィールドの内容をループするだけです。


したがって、すべてのデータを取得するには、mysql_fetch_array($result); をループ内に配置する必要があります。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート