Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL + PHP] Wyszukanie rekordu
Forum PHP.pl > Forum > Bazy danych > MySQL
MagnuM
Witam. Wiem, że temat zapewne jest dość banalny, ale szukam odpowiedzi od wczoraj, próbuje, kombinuje jak tylko mogę i nie wychodzi. Piszę wstępny system rejestracji użytkowników. Początki już za mną, teraz przyszedł czas na sprawdzenie, przed wpisaniem do bazy rekordu, czy baza nie zawiera już danego użytkownika (o tym samym nicku). Jeżeli zawiera to wyświetlić odpowiedni komunikat, jeżeli nie to zwyczajnie dodać rekord do bazy.

  1. <?php
  2. $nick = $_POST['nick'];
  3. $query = mysql_query(&#092;"SELECT nick FROM user WHERE nick = '$nick'\");
  4. if ($query) 
  5. { echo(&#092;"<center>W bazie danych jest już użytkownik o nicku <b>\"$nick\"</b>.<br>Proszę wybrać inny nick!</center>\");
  6. } else {
  7.  $db_connect = mysql_connect($db_host, $db_user, $db_password) or die('<center><br>Nastąpiły nieoczekiwane problemy w połączeniu z bazą danych<br>Proszę spróbować jescze raz!</center>');
  8.  mysql_select_db($db_baza, $db_connect) or die('<center><br>Nastąpiły nieoczekiwane problemy w połączeniu z bazą danych<br>Proszę spróbować jescze raz!</center>');
  9.  
  10.  $nick = $_POST['nick'];
  11.  $haslo = $_POST['haslo'];
  12.  $query = mysql_query(&#092;"INSERT INTO user (id, nick, pass) VALUES ('','$nick','$haslo')\");
  13.  
  14.  mysql_close($db_connect);
  15.  
  16. ?>


Z mojego toku myślenia wynika, że zmienna $query (ta która odpowiada za wyszukanie rekordu) powinna przyjąć wartośc True, lub False. No więc dodałem instrukcję warunkową 'if ($query) (...)' - czyli jeżeli znajdzie podany wcześniej w formularzu nick, to wyświetli komunikat z informacją, że dany użytkownik istnieje już w bazie. Natomiast jeżeli przyjmie wartośc False - czyli nie znajdzie użytkownika, to rejestracja przebiegnie dalszym tokiem rozwoju i użytkownik zostanie zarejestrowany.

Mógłby mi ktoś przedstawić jak to wkońcu jest ?
Pozdrawiam.
nospor
hihi, oj usmialem się. Najpierw wykonujesz zapytanie do bazy, a dopiero jak to zapytanie się wykona to się łączysz z bazą. To tak jakbyś zapytał się pani na hawajach(telepatycznie) czy jest ladna pogoda, a dopiero potem do niej zadzwonił, aby powiedzmy zapytać o coś jeszcze.

Poważnie:
Najpierw laczysz sie z bazą a potem wykonujesz zapytanie. W wyniku zapytania otrzymasz takie coś, co jest używane w innych komendach, aby otrzymac dane z zapytania (poczytaj:http://pl.php.net/mysql_query);
jesli cos takiego: $num_rows = mysql_num_rows($query); bedzie wieksze od zera to zanczy ze znalazl goscia
Skobi
to powinno zadziałać:

  1. <?php
  2.  
  3. $db_connect = mysql_connect($db_host, $db_user, $db_password);
  4. mysql_select_db($db_baza, $db_connect);
  5.  
  6. $query = mysql_query(&#092;"SELECT nick FROM user WHERE nick = '$nick'\");
  7. if ( mysql_num_rows( $query ) > 0 )
  8. {
  9. echo &#092;"user istnieje\";
  10. }
  11. else
  12. {
  13. $query = mysql_query(&#092;"INSERT INTO user (id, nick, pass) VALUES ('','$nick','$haslo')\");
  14. }
  15.  
  16.  
  17. ?>
MagnuM
guitar.gif guitar.gif guitar.gif

Nie no bardzo Cie proszę... miałem dodać, żeby się głośno nie śmiać jak jest coś głupiego. No tak, prosta sprawa.
W każdym razie dzięki smile.gif
Pozdrawiam. cool.gif
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.