# Daten aus mySQL-Tabelle mit Variable vergleichen



## online-markus (28. Dezember 2003)

Hi mal wieder!

Ich sitze gerade daran, für mein Loginsystem eine "Selbstanmeldung" für die User zu machen. Komme auch gut vorran, aber jetzt bin ich hengen geblieben.
Mein Problem ist: Beim Registrieren soll geprüft werden, ob der Nickname bereits vorhanden ist. (wenn ja, soll halt eine Fehlermeldung kommen...) Meine Frage jetzt: Wie mache ich so was? Ich habs mal so versucht, aber das klappt nicht wirklich, da immer nur der Wert der ersten Zeile der Tabelle ausgelesen wird:

```
//Variablen aus dem Formular werden übernommen und zugewiesen
$nickname = $_POST["nickname"];
$vorname = $_POST["vorname"];
$nachname = $_POST["nachname"];
$email = $_POST["email"];
$kennwort = $_POST["kennwort"];
$kennwort_2 = $_POST["kennwort_2"];

//Datenbankverbindung
$connectionid = mysql_connect ("localhost", "****", "*****"); 
if (!mysql_select_db ("********", $connectionid)) 
{ die ("Keine Verbindung zur Datenbank");} 

$sql = "SELECT * FROM benutzerdaten";
$result = mysql_query($sql);
$abrufen = mysql_fetch_array($result);
$pruefenick = $abrufen["Nickname"];
echo mysql_error();
if ($nickname == $pruefenick)
{
echo "Nickname wird bereits verwendet!";
}
```

Würde mich sehr freuen, wenn mir jemand die Lösung auf mein Problem hätte (Am besten gleich mit Code, ist ja nicht viel, nur ein paar Zeilen)

Grüße und einen guten Rutsch
Markus


----------



## ludz (28. Dezember 2003)

Du musst dein mysql_fetch_array in einer Schleife "abhandeln", um an alle Datensätze in der Tabelle zu kommen!
Was dein Problem angeht, das lässt sich aber leichter lösen:


```
//Datenbankverbindung
$connectionid = mysql_connect ("localhost", "****", "*****"); 
if (!mysql_select_db ("********", $connectionid)) 
{ die ("Keine Verbindung zur Datenbank");} 

$sql = "SELECT * FROM benutzerdaten WHERE Nickname='".$nickname."'";
$result = mysql_query($sql);
if (mysql_num_rows($result)>0) { //...wenn ein Datensatz mit diesem Nicknamen gefunden wurde:
    echo "Nickname wird bereits verwendet!"; //Fehlermeldung
}
```


----------



## online-markus (28. Dezember 2003)

DANKE
funktioniert prima!


----------



## online-markus (28. Dezember 2003)

Das mit dem Nickname klappt ja, aber jetzt will ich noch die E-Mail-Adresse überprüfen lassen. Hier ist mal der Code:


```
$sql = "SELECT * FROM benutzerdaten WHERE Nickname='".$nickname."'";
$result = mysql_query($sql);
if (mysql_num_rows($result)>0)
	{ 
	$nickname_inuse = "1";
	}
	
$sql = "SELECT * FROM benutzerdaten WHERE E-Mail='".$email."'";
$result = mysql_query($sql);
if (mysql_num_rows($result)>0)
	{ 
	$email_inuse = "1";
	}
```
Der erste Teil geht ja prima aber beim zweiten kommt die Fehlermeldung:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/web238/html/privat/register.php on line 25
Die Zeile 25 ist die: if (mysql_num_rows($result)>0)
Also die im zweiten Teil, wo es um die E-Mail geht.
Was ist da falsch?

Markus


----------



## online-markus (28. Dezember 2003)

hab den gehler, war der bindestrich bei E-Mail


----------

