Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php+mysql] zapobieganie dublowaniu rekordów
Forum PHP.pl > Forum > Przedszkole
cioop
witam,
mam pytanie - zdaje sobie sprawe, ze to pewnie latwe, ale gdzie moge znalesc cos o tym jak zbudowac formularz dodawania rekordu do bazy (np rejestracji), który bedzie sprawdzac czy rekord o takiej wartosci (nicku) juz istnieje?
z gory dziekuje i pozdrawiam
Cienki1980
Możesz zrobić to na dwa sposoby:
1. Podczas dodawania sprawdź czy w bazie istnieje już taki nick, jeżeli tak to nie dodawaj tego z formularza.
2. Nadaj kolumnie 'nick' UNIQUE. W takim przypadku baza sama nie pozwoli na wpisanie takiego samego nicka
muk4
ustawiasz value np. nick w formularzu i tu masz:

  1. <?php
  2. $tabela = '<nazwa_tabeli>';
  3. $query = mysql_query('SELECT * FROM '.$tabela.'');
  4. $zmienna = mysql_fetch_array($query);
  5. if($_POST['nick] === $zmienna['nick'])
  6. {
  7. echo 'Taki uzytkownik juz istnieje. Wybierz inny nick.';
  8. }
  9. else
  10. {
  11. // Tutaj reszta twojego kodu
  12. // Przykład:
  13. echo 'Zarejestrowales sie!!!jeeeee.';
  14. }
  15. ?>


łii.. to jest mój pierwszy kod jaki sam napisałem. Nie bić.
Cienki1980
Cytat(muk4 @ 26.02.2007, 18:25:37 ) *
ustawiasz value np. nick w formularzu i tu masz:

łii.. to jest mój pierwszy kod jaki sam napisałem. Nie bić.

Ok bić nie będziemy .. ale poprawny kod to to nie jest. W takim przypadku sprawdzisz tylko czy pierwszy wyciągnięty rekord będzie pasował z tym przesłanym w formularzu.

Musiałbyś ten kod zaopatrzyć w pętlę, tak aby każdy istniejący rekord w bazie sprawdzać z wartością z formularza.
muk4
  1. <?php
  2.  
  3. mysql_connect('localhost', 'root', 'piotrek');
  4. mysql_select_db(test) or die( "Unable to select database");
  5.  
  6. $jakisnick = 'muk4';
  7. $tabela = 'test';
  8. $query = mysql_query('SELECT * FROM '.$tabela.'');
  9. while($zmienna = mysql_fetch_array($query))
  10. {
  11. if($jakisnick === $zmienna['nick'])
  12. {
  13. echo 'Taki uzytkownik juz istnieje. Wybierz inny nick.';
  14. }
  15. else
  16. {
  17. // Tutaj reszta twojego kodu
  18. // Przykład:
  19. echo 'Zarejestrowales sie!!!jeeeee.';
  20. }
  21. ?>


While mnie pokonało... nie wiem gdzie mam zamknąć pętle... nawet nie wiem czy warunek jest dobrze napisany.
Może ktoś coś pomoże albo coś smile.gif.
Tylko nie bić.
cornholio666
Ja bym to jednak zrobił inaczej

  1. <?php
  2. function in_use($login){
  3.  
  4.  
  5.  $query = "SELECT nick FROM tabela WHERE nick = '$login' ";
  6.  
  7.  $result = mysql_query($query);
  8. if(!$result)
  9.  {
  10.  }
  11.  
  12. if(!mysql_num_rows($result))
  13.  {
  14.  return 0;
  15.  }
  16.  
  17. else
  18.  {
  19.  return 1;
  20.  }
  21. }
  22. ?>
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.