Есть такой вот кусок кода:
/* Определяем список значений справочника */
$query = "SELECT $failds FROM ".$_SESSION['s_table']; //запрашиваем информацию по всем значемым для данного шага полям справочника
$res1 = mysql_query($query);
for ($z=0; count($arr_el_type_label)>$z; $z++)
{
$i .= $arr_el_type_label[$z];
while ($row = mysql_fetch_array($res1))//перебираем результат запроса
{
$faild = $arr_failds[$z];
$i .= ','.$row[$faild];
}
$i .= ';';
}
echo $i;
Если на пальцах, то переменная $failds содержит три поля таблицы, имя которой записано в $_SESSION['s_table'], записанных через запятую.
Массив $arr_el_type_label также содержит 3 значения.
Массив $arr_failds содержит теже названия полей что и в $failds, записанные в томже порядке.
При написании кода был рассчёт, что цикл while будет выполнен 3 раза и, соответственно, будут подставлены в массив $row три ключа.
Однако не понятно почему цикл while отрабатывается только один раз. В остальных случаях всё пролетает мимо него.
Заработало только после того как я поменял код на этот:
for ($z=0; count($arr_el_type_label)>$z; $z++)
{
$i .= $arr_el_type_label[$z];
/* Определяем список значений справочника */
$query = "SELECT $failds FROM ".$_SESSION['s_table']; //запрашиваем информацию по всем значемым для данного шага полям справочника
$res1 = mysql_query($query);
while ($row = mysql_fetch_array($res1))//перебираем результат запроса
{
$faild = $arr_failds[$z];
$i .= ','.$row[$faild];
}
$i .= ';';
}
echo $i;
Помогите разобраться!