Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySql] Pętle, sprawdzanie pomoc w optymalizacji
webspy
post 10.07.2011, 11:48:34
Post #1





Grupa: Zarejestrowani
Postów: 186
Pomógł: 9
Dołączył: 3.03.2008

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


Witam,
Mam mały problem z długim działaniu skryptu.


Pobieram kod strony przez:
  1. $strona = implode ('', file ('http://strona.pl'));


(na wyciaganej stronie mam ok 300 pozycji podzielonych np po 40 na stronie)

Potem metodą preg_match_all wyciągam potrzebne dane:
  1. preg_match_all( '#<span>([0-9]{1,})</span>#sU', $strona, $ile, PREG_PATTERN_ORDER);

sprawdza mi ile jest stron

nastepnie mam petle ktora powtarza się tyle ile jest stron, i wyciąga kolejne dane z kodu strony.
  1. while ($ile <= $strony) {
  2. $strona2 = implode ('', file ('http://strona.pl/cos.php?p='.$ile.'));
  3. preg_match_all( "#<td class=\"kljlk\">(.+)</tr>#sU", $strona2, $obrazek, PREG_PATTERN_ORDER);


W tej petli jest nastepna która sprawdza po kolei przedmioty na tej stronie
  1. foreach ($obrazek[0] as $val) {
  2. $t++;
  3. }
  4.  
  5. for ($ile2=0; $ile2<=$t; $ile2++) {
  6.  
  7. //wyciaganie potrzebnych danych i zapisywanie w bazie
  8. //sprawdzanie również czy dany element jest już w bazie, jeśli jest to go już nie zapisuje
  9. // największy problem to taki że jak dodam w tym miejscu sprawdzanie (na odwrót) czy to co w bazie jest na stronie to za dlugo to chodzi i wywala błąd.
  10. $zapytanie44 = "SELECT * FROM przedmioty";
  11. $wykonaj4 = mysql_query ($zapytanie44);
  12. while($wiersz=mysql_fetch_array ($wykonaj4)) {
  13. $tytul = "".$wiersz['tytul']."";
  14. $id = "".$wiersz['id']."";
  15. if ($tytul == $nazwa) {
  16.  
  17. } else {
  18. $sql77 = "UPDATE `nazwa tabeli`.`przedmioty` SET `zmiana` = '0' WHERE `przedmioty`.`id` = '".$id."';";
  19.  
  20. $wykonaj77 = mysql_query ($sql77);
  21. } }


I tak w skrócie to wygląda, czy da się to jakoś zoptymalizować i użyć innych metod?

Proszę o jakieś podpowiedzi i funkcje których mogę użyć.
Z góry dziękuję za pomoc, pozdrawiam.


Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 02:04