error_log('BEGIN_while ');
while ( $rel-- ) {
error_log('while_rel: '.$rel);
$result = 'SELECT `mode` FROM `xuan` WHERE `id` = 1';
if ( $mysqli -> query($result) -> num_rows > 0 ) {
curl_setopt($ch, CURLOPT_URL, $url.'/mode/s/view/test-1');
$result = curl_exec($ch);
$mode = 1;
error_log('while_mode: '.$mode);
} else {
curl_setopt($ch, CURLOPT_URL, $url.'/mode/s/view/test-2');
$result = curl_exec($ch);
$mode = 2;
error_log('while_mode: '.$mode);
}
error_log('while_if_after');
curl_setopt($ch, CURLOPT_URL, $url.'/mode/s/confirm/test-'.$mode);
$result = curl_exec($ch);
sleep(1);
}
error_log('END_while ');
select @pivot_sql;Вообще, вы пытаетесь встать на путь извращения, заставляя СУБД вывести данные в том графическом виде, в котором их удобно воспринимать аля-Excel. Динамический запрос можно создать, но процедуру, которая его будет осуществлять, будет сложно сопровождать дальше, если потом делать изменения в отчете.
Для такой задачи с точки зрения SQL типичный подход такой, что вы пишите запрос, который возвращает выборку, в которой содержится исчерпывающий объем сведений, но представление выборки еще нужно дошлифовать.
Например, в вашем случае, вы бы написали запрос:
из которого получите вполне плоскую выборку без динамических колонок, в которой будет название теста, месяц, год и количество тестов.
Далее, выходной отчет в удобочитаемом виде будет формировать приложение, которым и осуществлялось подключение к СУБД. Обычно, СУБД MySQL использует веб-сервер PHP или Python, но может быть какая-нибудь и другая среда. В этих средах скрипт содержит и выполняет как сам этот SQL запрос, так и алгоритм сборки выходного документа - html-страница, xls-файл, pdf-файл.
В таком виде разработчику удобно сопровождать и тестировать отдельно SQL запрос и отдельно сборку выходного документа.