Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Porównanie tablicy z wpisami w bazie danych., Problem natury logicznej
kartun11
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 2
Dołączył: 22.07.2007

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


Witam, już 3 dni męczę się z takim prostym kodem i nie mam pojęcia co jest nie tak.
  1. <?php
  2. //...
  3. $repeat_num = 0; // Liczba powtarzających się kodów
  4. $added_num = 0; // Liczba dodanych kodów
  5.    
  6.    for($i = 0; $i < $arrsize; $i++) { //Zmienna $arrsize to ilość elementów w tablicy
  7.    
  8.        $isindb = FALSE; //Zmienna informuje o tym, czy dany kod już istnieje w bazie
  9.        
  10.        while($row = mysql_fetch_row($result)) { //$result to wynik zapytania do bazy
  11.            if($code[$i] == $row[0]) { //$code to tablica z kodami utworzona z pliku
  12.                $isindb = TRUE; //Kod istnieje w bazie
  13.                $repeat_num++; //Zwiększam ilość powtórzeń
  14.                break;
  15.            }
  16.        }
  17.  
  18.        if($isindb === FALSE) { //Jeżeli kodu nie ma w bazie
  19.            $query = "INSERT INTO codes VALUES('$code[$i]');"; // Zapytanie do bazy danych
  20.            mysql_query($query) or die("<h1><span style='color: red;'>Blad w zapytaniu</span></h1>"); // Dodaje kod
  21.            $added_num++; //Zliczamy dodany kod
  22.        }
  23.    }
  24. //...
  25. ?>


Za pierwszym razem dodaje mi wszystkie kody z pliku i jest ok. Gdy próbuję dodać kody drugi raz, też wszystko działa i zlicza powtórzenia.
Problem się pojawia, gdy usunę jakiś kod w bazie i będę chciał dodać kody jeszcze raz. Teoretycznie powinno dodać mi tylko jeden kod.
Wtedy wyglądało by to tak, że dodano jeden kod, a reszta się powtarza. Mi jednak działa to tak, że gdy natrafi na kod, którego nie ma w bazie dodaje go, ale później dodaje już wszystkie kody. Nie mam pojęcia co jest nie tak.
Proszę o pomoc.

Ten post edytował kartun11 11.06.2009, 21:04:17
Go to the top of the page
+Quote Post

Posty w temacie


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: 20.09.2025 - 08:46