Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Podwójne dodawanie danych
yalus
post 6.11.2005, 14:34:47
Post #1





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 8.07.2005
Skąd: EU

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


witam

  1. <?php
  2. function er($we)
  3. {
  4. $link=mysql_connect('localhost', 'gregor', 'gregor1234') or die('Nie można się połączyć');
  5. mysql_select_db('gregor');
  6. $zapytanie = "SELECT * FROM users";
  7. $wykonaj = mysql_query ($zapytanie) or die(mysql_errno() . ": " . mysql_error(). "n");
  8.  
  9.  
  10. while($wiersz=mysql_fetch_array ($wykonaj))
  11. {
  12.  
  13. $a= strpos(" ".$wiersz['user'], $we);
  14. $b= strpos(" ".$wiersz['password'], $we);
  15.  
  16. if (($a || $b)>0)
  17. {
  18. $j++;
  19. $zap = "INSERT INTO users_temp SET user='$wiersz[user]', password='$wiersz[password]'";
  20. $wyk = mysql_query ($zap) or die(mysql_errno() . ": " . mysql_error(). "n");
  21. }
  22. else
  23. echo"nic nie znaleziono <br>";
  24.  
  25. }
  26.  
  27. mysql_close($link);
  28. echo $j;
  29.  
  30. }
  31.  
  32. //wywolanie funkcji
  33. echo er("6");
  34. ?>


w bazie mam dwie tabele o identycznej strukturze users i users_temp

funkcja er(' ') sprawdza czy dane wejsciowe (w tym przypadku '6') znajdują się w jakiejkolwiek komórce aktualnie analizowanego wiersza, jezeli tak to zmienne $a lub $b przyjmują wartość > 0
jezeli warunek
  1. <?php
  2. if (($a || $b)>0)
  3. ?>
jest spełniony wiersz z tabeli users powinien być dodany do tabeli users_temp co nie do konca dzieje się z moimi oczekiwaniami, owszem dodaje sie ale zawsze jest zdublowany tj;

jezeli w tabeli users mam nastepujace dane
users password
jan jan12345
john john12345

i teraz odpalajac funkcje er() z paramterem 'an12' czyli er('an12') - czyli chce znalezc wszystki rekordy z wystepujaca gdziekolwiek fraza 'an12'

w tablei users_temp mam nastepujace dane:
users password
jan jan12345
jan jan12345

czyli znalezione dane zostaly podwojnie dodane, dlaczego?

wstawilem zminna $j do środka warunku if (($a || $b)>0) i po zakonczeniu wszystkiego jej wartość jest=1 czyli warunek byl tylko raz spelniony to dlaczego w tabeli users_temp sa dwa takie same rekordy?questionmark.gif


--------------------
człowiek nie sznurek wszystko wytrzyma
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: 18.07.2025 - 10:51