mam sobie taka funkcje dodająca rekordy do bazy danych, parametrami funkcji są tablica z pozycjami zamówienia oraz ID zamowienia. Prodblem polega na tym że gdy ta tablica jest duża np 9999 rekordów to skrypt wykonuje się bardzo długo i sewer wywala że przekroczono dozwolony czas wykonania skryptu.
Łązcenie stringów wykonuje się za długo.
Może ktoś z was wie jak to zrobic lepiej,
Bardzo prosze o pomoc
oto wspomniana funkcja:
<?php function zapiszDane($Tablica_rekordow,$ID_zamowienia){ //tam gdzie w tablicy rekordów jest puste pole (np. brak materiału bo nie jest wymagany) trzeba wpisać null for($i=0;$i<count($Tablica_rekordow);$i++){ if($Tablica_rekordow[$i][2]==\"\") $Tablica_rekordow[$i][2]=\"NULL\"; if($Tablica_rekordow[$i][4]==\"\") $Tablica_rekordow[$i][4]=\"NULL\"; if($Tablica_rekordow[$i][6]==\"\") $Tablica_rekordow[$i][6]=\"NULL\"; } $i=0; $tekst=\"\"; for($i=0;$i<count($Tablica_rekordow);$i++){ for($k=0;$k<$Tablica_rekordow[$i][8];$k++){ if(($i==0) && ($k==0)) //pierwszy raz na początku bez przecinka $tekst=$tekst.\"(\".$Tablica_rekordow[$i][0].\",\".$ID_zamowienia.\",\".$Tablica_rekordow[$i][2].\",\".$Tablica_rekordow[$i][4].\",\" .$Tablica_rekordow[$i][6].\",\".$Tablica_rekordow[$i][9].\")\"; else $tekst=$tekst.\",(\".$Tablica_rekordow[$i][0].\",\".$ID_zamowienia.\",\".$Tablica_rekordow[$i][2].\",\".$Tablica_rekordow[$i][4].\",\" .$Tablica_rekordow[$i][6].\",\".$Tablica_rekordow[$i][9].\")\"; } } $query=\"INSERT into zamowienia_relacje (Produkt_ID,ID_Zamowienia,Zestaw_ID,Drewno_ID,Material_ID,Cena) VALUES \".$tekst; if(!$res) return false; else return true; } ?>
zapomniałem dodać że $Tablica_rekordow[$i][8] zawiera ilość danego produktu na zamówieniu czyli np.jesli ktoś chce 10 książek to tam jest liczba 10 . i ja chce żeby mi wstawiło 10 rekordów do tabeli.problem jest wtedy gdy tam jest duz liczba np 5000.