2011-02-07 10 views
0

私はデータベースからデータを取得しており、テーブルに23の列があるとしたら、23行を書き込んで値を設定する必要があります。 これを行う他の方法はありますか?PHPでこれを行うための最善の方法

下の例では、わずか15列しかなく、15行しか書いていません。どのような短い方法ですか?

while($row = mysql_fetch_array($export)) 
    { 
     $line = ''; 
     $line.=setValue($row[0]); 
     $line.=setValue($row[1]); 
     $line.=setValue($row[2]); 
     $line.=setValue($row[3]); 
     $line.=setValue($row[4]); 
     $line.=setValue($row[5]); 
     $line.=setValue($row[6]); 
     $line.=setValue($row[7]); 
     $line.=setValue($row[8]); 
     $line.=setValue($row[9]); 
     $line.=setValue($row[10]); 
     $line.=setValue($row[11]); 
     $line.=setValue($row[12]); 
     $line.=setValue($row[13]); 
     $line.=setValue($row[14]); 

    } 

答えて

6
while($row = mysql_fetch_array($export)) 
{ 
    $line = ''; 
    foreach($row as $value) { 
     $line.=setValue($value); 
    } 
} 
0

私は、これはあなたが探しているものですが、あなたは、このようなループのために使用できるかどうか、本当にわからない:

while($row = mysql_fetch_array($export)) 
    { 
     $line = ''; 
     for($i = 0; $i < 15; $i++) 
     { 
      $line.=setValue($row[$i]); 
     } 

    } 
0
while($row = mysql_fetch_array($export)) 
    { 
     $line = ''; 
     for($i = 0; $i < 15; $i++) { 
      $line .= setValue($row[$i]); 
     } 

    } 

一つの手法だこと。他にもあります。 '15'を返された配列のカウントフォームに置き換えることができます。このようにしてforループは配列の最後まで繰り返されます。

UPS、笑、遅すぎる...

+0

ループの固定境界を使用するのは面倒です - 反復ごとのカウントを評価するのは非効率的です – symcbean

+0

$ bound = sizeof($ row); for($ i = 0; $ i <$ bound; $ i ++)... –

+0

15列以上があるとどうなりますか? –

0

あなたが何か

....のような
while ($row=mysql_fetch_array($export)) { 
    $line=array(); 
    $line=array_map('setValue',$xport); 
    $line=implode('',$line); 
} 

....その非常に厄介な構文を行うことができますが - それは、クエリがすることを前提としています非常によく定義された結果セットを返し、結果セットの構造とそれに続くアプリケーションは置き換えられます。一般的な経験則として、mysql_fetch_arrayを決して使用しないでください。代わりにmysql_fetch_assocを使用してください。

関連する問題