Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ladowanie skryptu
Forum PHP.pl > Forum > PHP
usb
Witam. Mam oto prosty kod wyrwany z kontekstu:

  1. <?php
  2. $query2 = "SELECT * FROM baza WHERE import2 = 0";
  3.  
  4. $result2 = mysql_query($query2)
  5. or die(mysql_error());
  6.  
  7. while($row = mysql_fetch_array($result2)) {
  8.  
  9. $id = $row['id'];
  10. $kierunek = $row['kierunek'];
  11. $tel = $row['tel'];
  12.  
  13. $query = "SELECT * FROM baza WHERE kierunek = '$kierunek' AND tel = '$tel''";
  14.  
  15. $result = mysql_query($query)
  16. or die(mysql_error());
  17.  
  18. $num = mysql_num_rows($result);
  19.  
  20. if($num>1){
  21.  
  22. $query = "DELETE FROM baza WHERE id = '$id'";
  23.  
  24. $result = mysql_query($query)
  25. or die(mysql_error());
  26.  
  27. }
  28. }
  29. ?>



Skrypt dziala na zasadzie , ze importowane nowe rekordy do bazy sa sprawdzane czy juz takie sa w bazie po nr tel. Czyli glowne zadanie skryptu to kasowanie dubli.

Skrypt działa poprawnie w przypadku mniejszej ilosci importowanych rekordow. Natomiast w przypadku importu 50 tys rekordow, laduje sie skrypt z 1 min po czym wyswietla sie bladf nr 500 (wew. blad serwera) Jest jakas inna technika zeby zrobic takie porownanie nie obciazajac tak serwera?


pozdrawiam
MWL
pownineneś połączyć zapytania za pomoca np. LEFT OUTER JOIN
usb
ale to jest laczenie dwóch tabel a te rekordy sa w jednej.
wlamywacz
Nie możesz po prostu dać unikalnego klucza na te kolumnę i stosować INSERT IGNORE żeby nie przerwało skryptu ?
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.