2011-02-07 2 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); для ($ 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.

Смежные вопросы