Какие-то строки заполняются "вручную"(первый switch) - т.е.в зависимости от case данные помещаются в определенную ячейку столбца, какие-то данные вставляются в цикле(второй switch).
Вопрос такой: почему когда ставишь в первом switch одно continue - проскакивает, если continue 2; - исполняется, как надо.
Объясните, пожалуйста, построчно, там, где continue 2; что происходит в коде.
Привожу кусок, который касается сути дела:
//записи из БД
while(!$rs2->EOF)
{
$row2++;
$col2 = 0;
for($i = 0; $i < sizeof($flds2); $i++)
{ //номер строки с данными
switch($i)
{
case 0:
$worksheet1->write_number($row2, 16, 16, $format_num);
$col2++;
continue 2;
break;
//здесь другие case
case 17:
$worksheet1->write_string($row2, 17,$cod4, $format_num);
$col2++;
continue 2;
break;
}
// Учитываем тип данных
switch($tips2[$i])
{
case 0:
case S_INTEGER:
case S_FLOAT:
$val = $rs2->fields[$i];
$worksheet1->write_number($row2, $col2++, number_format($val,3,',',' '),$format_num);
break;
case S_TEXT:
$val = $rs2->fields[$i].' ';
$worksheet1->write_string($row2, $col2++, $val);
break;
default:
$worksheet1->write_string($row2, $col2++, ''.$rs2->fields[$i].' ',$format_str);
}
}
$rs2->MoveNext();
}