4

私はmysqlクエリを持っています:

$result = mysql_query("my query");

このようなものを作る方法はありますか?

$results = mysql_fetch_assoc($result); // fetch the results

そして、従来の while の代わりに foreach を使用してそれらをループします。

foreach($results as $result){
   $result1 = $result->result1;
   $result2 = $result->result2;
}

タイ

4

3 に答える 3

6

Foreach は、配列とオブジェクトを反復処理する構造です。 mysql_fetch_assocは配列を返しますが、各配列は 1 行分のデータのみになります。したがって、 foreach は最初の行にある列を提供するだけです。

mysql_fetch_assoc と foreach を一緒に使用しないでください。

于 2012-07-23T22:57:35.450 に答える
2

一度に 1 行しか返されないためmysql_fetch_assoc、これを使用して PHP 結果セットを PHP 配列に変換します。次に、配列で foreach を使用します。

例えば:

while ($row = mysql_fetch_assoc($result)) { 
     $rows[] = $row; 
} 

foreach($rows as $row) {
    //Then do something for each row, for e.g.:
    if ($row['col_name'] == 'somevalue'){
        $arrList[] = $row['id'];
    }
}

または:

while ($row = mysql_fetch_assoc($result)) { 
     $rows[] = $row; 
} 

foreach($rows as $row) { 
     foreach($row as $field => $value) { 
          //do something with $field and $val 
     }
}

または:

while ($row = mysql_fetch_assoc($result)) { 
     $rows[] = $row; 
} 

for($i=0;$i<count($rows);$i++) { 
     //do something with $rows[$i]['field_name'] 
}

ソース:

Devshed: PHP foreach/while mysql の結果?

于 2015-02-17T22:23:30.860 に答える