Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> złe wykonywanie pętli raz na kilknascie tysiecy razy
remik09
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 10
Dołączył: 25.12.2005
Skąd: Ruda Śląska

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
l0ud
post
Post #2





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
remik09
post
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 10
Dołączył: 25.12.2005
Skąd: Ruda Śląska

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
l0ud
post
Post #4





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


Ile średnio trwa wykonanie się tego skryptu? Rozumiem że masz kilkanaście tysięcy pozycji w tabeli 'mp3'? (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif)
Go to the top of the page
+Quote Post
remik09
post
Post #5





Grupa: Zarejestrowani
Postów: 102
Pomógł: 10
Dołączył: 25.12.2005
Skąd: Ruda Śląska

Ostrzeżenie: (0%)
-----


2-3 minuty

a jest moze jakis sposob zeby odrazu to co sie wykona zapisac do pliku ?
Go to the top of the page
+Quote Post
Kocurro
post
Post #6





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Limit czasu Cię łapie ...
Go to the top of the page
+Quote Post
l0ud
post
Post #7





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


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

Ten post edytował l0ud 25.02.2008, 22:43:06
Go to the top of the page
+Quote Post
remik09
post
Post #8





Grupa: Zarejestrowani
Postów: 102
Pomógł: 10
Dołączył: 25.12.2005
Skąd: Ruda Śląska

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 14:07