Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: złe wykonywanie pętli raz na kilknascie tysiecy razy
Forum PHP.pl > Forum > PHP
remik09
jak w temacie, jest jakiś problem na ominięcie tego

zrobiłem sobie skrypciki robiący mapke do xml'a z mojej stronki

  1. <?php
  2. $pobierz_mp3 = mysql_query("SELECT * FROM `mp3`");
  3.  
  4. while ($row = mysql_fetch_array($pobierz_mp3)) {
  5. $tytul = tytul($row['tytul']);
  6. print '<url>
  7. <loc>http://pobierzmp3.pl/mp3,'.$row['id'].','.$tytul.'.html</loc>
  8.  <priority>0.5</priority>
  9. <changefreq>daily</changefreq>
  10. </url>
  11. ';
  12. }
  13. ?>


i kilka jeszcze takich samych, ale cala mapka ma okolo pol miliona linijek i sie czasem sypie bo zle zostala wykonana petla, mozna jakos usprawnic to zeby nie tworzyly sie jakies byki

no mam miec

Kod
<loc>http://pobierzmp3.pl/mp3,1,lalal.html</loc>


a tworyz sie

Kod
<loc>http://pobierzmp3.pl/mp3,1,lalal.html</l


oczywiscie nie zawsze tylko raz na jakies 100.000 razy
l0ud
Nie spotkałem się z czymś takim, jak źle wykonujące się pętle w PHP. Zaktualizuj je do najnowszej wersji. Być może po prostu coś czasami nie tak z przesyłem do przeglądarki?
remik09
no nie wiem calkiem mozliwe, bo robie sobie ta mapke i mi wywalaja sie bledy a widac ze to z powodu blednego wykonania petli a nie z blednego napisania tejze petli bo kilkanascie tysiecy innych rekordow wykonuje sie dobrze
l0ud
Ile średnio trwa wykonanie się tego skryptu? Rozumiem że masz kilkanaście tysięcy pozycji w tabeli 'mp3'? blinksmiley.gif
remik09
2-3 minuty

a jest moze jakis sposob zeby odrazu to co sie wykona zapisac do pliku ?
Kocurro
Limit czasu Cię łapie ...
l0ud
Być może po prostu czasem coś się dzieje dłużej, php po prostu przerywa wykonywanie skryptu. O ile jeszcze tego nie zrobiłeś, ustal w pliku php.ini max_execution_time na większą wartość. Jeżeli nie masz do niego dostępu, zainteresuj się funkcją set_time_limit():

http://pl2.php.net/manual/pl/function.set-time-limit.php
remik09
nic to nie dalo niestety ustawilem na samym poczatku

  1. <?php
  2. ?>


i nic dalej to samo

a nie ma tez czasem plik xml jakiegos takiego limitu ? bo jesli skroce dokument do okolo 100000 linijek to nie wykrywa zadnego bledu
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.