Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Sprawdzanie duplikatów podczas rejestracji
Forum PHP.pl > Forum > Przedszkole
pjamorski
Witam wszystkich

Mam małe, krótkie pytanie. Jak mogę zrobić, żeby za pomocą mojej funkcji sprawdzić wprowadzane nazwy użytkowników podczas rejestracji czy takowe w bazie istnieją, poniżej zamieszczam kod mojej wyobraźni:

oto funkcja, którą potrzebuję wyprostować żeby działała
Oczywiście zmienne: $nick, $hasloo, $email, $info, $wybor, pobierane są z formularza w pliku z funkcją poprzez $_POST[' ']. Zmiennych $serwer, $uzytkownik, $haslo nie muszę wyjaśniać

Kod
function Zapisz_osobe($nick, $hasloo, $email, $info, $wybor,$serwer, $uzytkownik, $haslo)
{    
    $polaczenie = mysql_connect($serwer, $uzytkownik, $haslo) or die('Polaczenie z serwerem niemozliwe');
    $dbd = mysql_select_db("baza", $polaczenie) or die('Polaczenie z baza niepowiodlo sie');
    $zapytanie = "SELECT *FROM rejestr";
    $wynik = mysql_query($zapytanie) or die('nie mozna wyswietlic danych');
    while($dane = mysql_fetch_array($wynik))
    {
        echo $dane['nick'];
        $qwe1[] = $dane['nick'];
    }
    
    if($nick)
    {
        if($nick==$qwe1)
        {
            echo 'Taki uzytkownik jest juz w bazie, zmien NAZWE NICKNAME';
        }
        else
        {
            $zapisz = "INSERT INTO rejestr (id,nick, haslo, email, informacje, wybor) VALUES('','$nick', '$hasloo', '$email', '$info', '$wybor')";
            $wynik = mysql_query($zapisz) or die('Rejestracja uzytkownika nie jest mozliwa');
            echo 'Rejestracja uzytkownika ';
        }
    }
    else 'ZONK exclamation.gif!';
}


plik index.html z formularzem odniśnie tej funkcji wygląda tak:

Kod
<form method='POST' action='rejestruj.php'>
    Nick: <input type='text' name='nazwa'><br>
    Haslo: <input type='password' name='haselko' maxlength='9'> maksymalnie 9 znaków<br>
    Powtorz haslo: <input type='password' name='haslo_replace' maxlength='9'> maksymalnie 9 znaków<br>
    Email:<input type='text' name='emailek' size='40'><br>
    Powtórz adres email:<input type='text' name='email_replace'><br>
    Rodzaj rejestracji:<br>
                        <input type='radio' name='radio1' value='przegladanie'>przegladanie<br>
                        <input type='radio' name='radio1' value='uzytkownik'>uzytkownik<br>
                        <input type='radio' name='radio1' value='administrator'>administrator<br>
    Informacje dodatkowe:
                        <textarea rows='9' cols='30' name='info'></textarea>                    
                        
                        
    Podaj nickname: <input type='text' name='nickname'><input type='submit' value='kasuj rekord'>                    
                        <!--
                        <select name='wybor[]'>
                        <option>przegladanie</option>
                        <option>uzytkownik</option>
                        <option>administrator</option>
                        </select>
                        -->
    <br><br><br>
    Potwierdz czynnosc:<br>
                        <input type='radio' name='radio2' value='tworz'>tworz baze<br>
                        <input type='radio' name='radio2' value='rejestruj'>rejestruj<br>
                        <input type='radio' name='radio2' value='kasuj'>kasuj wszystkie rekordy z bazy<br>
                        <input type='radio' name='radio2' value='kasuj_baze'>kasuj baze danych<br>
                        <input type='radio' name='radio2' value='pokaz'>POKAZ ZAREJESTROWANYCH UZYTKOWNIKOW<br>
    <br><br><br>                    
    <input type='submit' value='START'><input type='reset' value='KASU FORMULARZ'>
    </form>


Wynik dzialania jest taki, że nic się nie wyświetla, bazę mam dobrze stworzoną, tabelki rónież. Normalny zapis usera działa poprawnie, inne funkcje działające na bazie działają, tylko ta nie chcę.

dzięki
Spawnm
$sql="SELECT nick FROM users WHERE nick='$usernick'";
dajesz
mysql_num_rows()" title="Zobacz w manualu PHP" target="_manual
jak ==1 nick zajęty.
piotrooo89
zrób to po stronie serwera SQL.

  1. <?php
  2. $zapytanie = "SELECT COUNT(*) FROM rejestr WHERE nick='".$nick."'";
  3. ?>


jeśli zwróci 1 lub więcej to znaczy że jest, jeżeli 0 to znaczy ze nie ma.

//EDIT

przyda Ci się jeszcze mysql_result
kefirek
Sprawdzasz w ten desen
  1. <?php
  2. $wynik = mysql_query("SELECT nick FROM rejestr WHERE nick='".$nick."'");
  3.  
  4. if(mysql_num_rows($wynik) > 0) {
  5.  
  6. echo 'istniej taki uzytkownik';  
  7. } else {
  8. echo 'Nie istniej taki uzytkownik';
  9. }
  10. ?>
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.