PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Doppelte Einträge in DB vermeiden



Xyla
11.06.2004, 09:58
Hallo Leute.

Ich bin dabei, ein Registrierungsfrontend zu schreiben dabei will ich aber vermeiden, dass ein Username doppelt in der DB vorlommt.
Das Feld auf Unique zu setzen bringt nicht so ganz den Erfolg.
Wie kann ch es in PHP vor dem ISERT Query abchecken, ob es schon einen Eintrag mit dem Namen (ganzer Name, nicht ein Teil davon) schon gibt ?

Wäre für Hilfe sehr dankbar...

MfG und schönes WE

Xyla

s.molinari
11.06.2004, 13:51
Hi Xyla,

Hier ist ein Ansatz:



if ($checkuser = $DB_site->query_first("
SELECT username
FROM " . TABLE_PREFIX . "user
WHERE username = '".$deinebenutzernamevariable."'))
{
echo "Sorry, Dieser Name ist schon vergeben.";
}
else
{
$DB_site->query("INSERT INTO blahblahblah");
}


Scott

Xyla
11.06.2004, 14:08
Da bekomm ich Probleme wenn einer www und der andere wwww heißt. wie kann ich der Db sagen, das Sie nur den kompletten Namen checken soll und Wortstämme außer Acht lassen soll.

Ansonsten erstmal danke. Hilft schon etwas weiter.
Da hab ich schon zuweit um die Ecke gedacht

Mystics
11.06.2004, 16:07
wie kann ich der Db sagen, das Sie nur den kompletten Namen checken soll und Wortstämme außer Acht lassen soll.
Genau das macht der Code von Scott.

Xyla
13.06.2004, 13:10
echt ? dieser Code würde bei schon bestehenden User Peter einen User Peterle akzeptieren ?

Mystics
13.06.2004, 13:11
echt ? dieser Code würde bei schon bestehenden User Peter einen User Peterle akzeptieren ?
Ja, würde er.

Xyla
13.06.2004, 14:29
Super danke

Xyla
14.06.2004, 09:17
So hab ich jetzt bei mir stehen


if ($checkuser = $DB_site->query_first("SELECT name FROM tipp_mitglieder WHERE name = '$name'"))

und das sagt mir mein Browser nach der Ausführung:

Fatal error: Call to a member function on a non-object in /.../query.php on line 21
Zeile 21 ist o.g. Zeile

Mystics
14.06.2004, 18:50
So hab ich jetzt bei mir stehen


if ($checkuser = $DB_site->query_first("SELECT name FROM tipp_mitglieder WHERE name = '$name'"))

und das sagt mir mein Browser nach der Ausführung:

Fatal error: Call to a member function on a non-object in /.../query.php on line 21
Zeile 21 ist o.g. Zeile

Hast du auch vorher die global.php included? Falls nein, mach das :)

Falls ja, und Zeile 21 ist Teil einer function(), musst du noch global $DB_site; eine Zeile darüber schreiben.

Xyla
15.06.2004, 07:07
ahhh da haben wir uns mißverstanden :( Ich nutze nicht die Userdatenbank des Forums, also dieses Datei hat nix mit vB zu tun :)

Xyla

Mystics
15.06.2004, 21:41
ahhh da haben wir uns mißverstanden :( Ich nutze nicht die Userdatenbank des Forums, also dieses Datei hat nix mit vB zu tun :)

Xyla
Dann kannst du auch nicht die Funktionen von vB benutzen...also $DB_site->query(_first). Da musst du dann halt mit den Standard-PHP-Funktionen arbeiten.