phpbar.de logo

Mailinglisten-Archive

[dbs] [PHP & MySQL] Arbeiten mit Unique

[dbs] [PHP & MySQL] Arbeiten mit Unique

Sven Eicher phpbar at koalashome.de
Sam Jan 3 15:21:16 CET 2004


Hallo

> >Du musst erst mit einer Schleife die Ergebniszeilen aus deiner query
> >rausholen.
> Ich habe es jetzt mal so versucht:
[...]
> kann es sein, das ich dich missverstanden habe ?

Da der erste if-Teil ja nur max. einmal erfüllt ist, wird der else-Zweig immer 
wieder ausgeführt und du erhälst diese Ausgabe eben x-mal.

Wie wärs denn damit:

include("lib/mysql.inc.php");
$abfrage = "
  SELECT benutzername 
  FROM user 
  WHERE benutzername = $_POST[benutzername]";
$ergebnis = mysql_query($abfrage);

if (!mysql_num_rows($ergebnis)) {
  $passwort = md5($passwort);
  $eintrag = "INSERT INTO `user` (`benutzername`, `passwort`, `email`, 
`geburtstag`, `wohnort`, `icq`, `msn`, `homepage`) VALUES 
('$_POST[benutzername]', '$passwort', '$_POST[email]', '$_POST[geburtstag]', 
'$wohnort', '$icq', '$msn', '$homepage')";
  $eintragen = mysql_query($eintrag);
  echo "Du wurdest erfolgreich registriert!";
} else {
  echo 'Der Benutzernamen '.$_POST[benutzername].' ist bereits vergeben.';
  echo 'W&#228;hle bitte einen anderen Namen.<br>Zurück';
}

Übrigens sollte man, um Probleme mit Sonderzeichen zu vermeiden, die 
eingegebenen Daten Escapen.

  $eintrag = "
  INSERT INTO `user` 
  (`benutzername`, `passwort`, `email`, `geburtstag`, `wohnort`, `icq`, `msn`, 
`homepage`) 
  VALUES (addslashes($_POST[benutzername]), '$passwort', 
addslashes($_POST[email]), addslashes($_POST[geburtstag]), ... usw.

Nach dem Auslesen der Werte ist dann auf die ausgelesenen Werte ein 
stripslashes() anzuwenden.

-- 
Koala


php::bar PHP Wiki   -   Listenarchive