PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP] Überprüfen, ob E-Mail vorhanden ist


Blade II
2007-04-09, 20:15:20
hey ho

Ich würd gern überprüfen, ob eine E-Mail Adresse bereits in der Datenbank vorhanden ist. Wie mache ich das am einfachsten?

Im Moment habe ne ziemlich schlechte Lösung:


$sql_email = "SELECT
EMail
FROM
newsletter
WHERE
EMail = '$email'";

$user = mysql_query($sql_email) or die (mysql_error());

while ($row = mysql_fetch_assoc($user)) {

if ($email != $row['EMail']) {

echo "<p>E-Mail nicht vorhanden - wird registriert</p>";

}

else {
echo "<p style=\"font-weight: bold; color: #FF0000;\">Fehler: Die E-Mail-Adresse $email ist bereits vorhanden.</p>";
}
}


Gibt doch bestimmt ne bessere Lösung, oder? :)

Marscel
2007-04-09, 20:30:00
Sind die Einträge in der Spalte EMail einzigartig? Wenn ja, kann man das so lassen, gravierend fällt da nichts ins Auge. Ist $email escaped?

Wenn nicht, unbedingt etwas ändern, entweder ein 'LIMIT 1' an den Query anfügen oder mittels 'COUNT' zählen, wie viele Datensätze betroffen sind. Das erspart dann die while-Schleife, sodass du auch immer nur ein Ergebnis haben wirst.

The_Invisible
2007-04-09, 20:58:59
ja, kürzer, indem du nach der abfrage mit mysql_num_rows() überprüfst ob ein datensatz zurückgeliefert wurde (wenn 0 = existiert nicht), die schleife ist unnötig

mfg

Blade II
2007-04-10, 10:05:12
Hi

Funktioniert schon mal fast (y)

Kurz was zum eigentlich Projekt:
Ich will einen Newsletter schreiben, bei dem man sich auch über ein Script anmelden kann. Nun soll aber eine Fehlermeldung kommen, wenn die E-Mail bereits registriert ist und es soll dann verhindert werden, dass die Mail wieder in die Datenbank eingefügt wird.

Mit mysql_num_rows wird leider nur überprüft, ob überhaupt irgend eine Mail in der Datenbank vorhanden ist, was nen bisschen ungünstig ist, da die Mails ja variieren ;)

The_Invisible
2007-04-10, 10:09:37
in der datenbank die spalte "email" als UNIQUE definieren.

mfg