Mam taki kod jak poniżej. Pobieram wszystkie numery telefonów z tabeli tb_telefony i do nich muszę dopisać poszczególne dane z tabeli tb_dane następnie eksportuje tablicę $arr_response_qsa do Excela.
W tabeli tb_telefony jest około 13000 wierszy danych po wykonaniu pierwszego zapytania, w drugim zapytaniu na każde tele_id jest około 10 wierszy z dane_id, wykonując ten skrypt serwer się wywala "Internal Server Error : Wewnętrzny błąd serwera" - bez dodawania części kodu PHP dotyczącej eksportu do Excela (korzystam z Spreadsheet_Excel_Writer).
$oDb to jest klasa do obsługi bazy danych mysql.
Jak daję LIMIT w pierwszym zapytaniu to działa, ale potrzebuję mieć wszystko w jednym pliku Excela.
Jak to zoptymalizować? Jak się nie da to chyba tylko dzielnie z LIMIT w pierwszym zapytaniu i wywoływanie kilka razy skryptu z różnym LIMIT?
$tab = $oDb->query("SELECT tele_id, cpteGar, nazwa_kon, VIN, juz_wylosowany FROM tb_telefony WHERE tele_id > 0 AND miesiac= '" . $oMain->mVar['fala'] . "' "); $n = $oDb->numRows(); for ($i = 0; $i < $n; $i++) { $row = $oDb->row(); $arr_response_qsa_dane_telefony[$row['tele_id']] = $row; } foreach ($arr_response_qsa_dane_telefony as $key => $value) { $tab = $oDb->query("SELECT tele_id, dane_id, klas1, klas99, klas2, klas3, Q16 FROM tb_dane WHERE tele_id='" . $key . "' AND miesiac= '" . $oMain->mVar['fala'] . "' "); $n = $oDb->numRows(); // zwraca liczbe wierszy for ($i = 0; $i < $n; $i++) { $row = $oDb->row(); // wiersz $arr_response_qsa[$row['tele_id']]['numer_salonu'] = $arr_response_qsa_dane_telefony[$key]['cpteGar']; $arr_response_qsa[$row['tele_id']]['nazwa_kon'] = $arr_response_qsa_dane_telefony[$key]['nazwa_kon']; $arr_response_qsa[$row['tele_id']]['VIN'] = $arr_response_qsa_dane_telefony[$key]['VIN']; $arr_response_qsa[$row['tele_id']]['juz_wylosowany'] = $arr_response_qsa_dane_telefony[$key]['juz_wylosowany']; // co sie dzialo z danym tele_id $arr_response_qsa[$row['tele_id']][$row['dane_id']]['klas1'] = $row['klas1']; $arr_response_qsa[$row['tele_id']][$row['dane_id']]['klas99'] = $row['klas99']; $arr_response_qsa[$row['tele_id']][$row['dane_id']]['klas2'] = $row['klas2']; $arr_response_qsa[$row['tele_id']][$row['dane_id']]['klas3'] = $row['klas3']; $arr_response_qsa[$row['tele_id']][$row['dane_id']]['Q16'] = $row['Q16']; } }