php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Fehlermeldung bei Doppeleintrag in Datenbank


 
dagato
01-04-2003, 11:30 
 
Hallo,

habe ein Eingabeformular, was Userdaten in Datenbank einträgt - funktioniert. User muß auch Username & Passwort eingeben.

Mein Problem nun, wenn ein User in die Datenbank ein bereits vorhandenen Usernamen eingeben will, dann kommt folgende Fehlermeldung über meiner ganzen Tabelle:

Duplicate entry 'test' for key 3
Warning: Cannot modify header information - headers already sent by (output started at /home/sites/site192/users/dagato/web/includes/send.php:10) in /home/sites/site192/users/dagato/web/user/new_user.php on line 50

Gebe ich ein andern Usernamen ein, dann ist die komplette Fehlermeldung weg und alles funktioniert einwandfrei!


Wie bekomme ich es hin, dass mir in solch einem Fall eine Ausgabe macht, nach folgendem Beispiel: Dieser Username ist bereits in unserer Datenbank vorhanden. Bitte wählen Sie einen anderen Namen!


Gruß Dirk

 
wahsaga
01-04-2003, 11:35 
 
vor den mysql_query()-befehl notierst du ein @, damit eine eventuelle fehlermeldung unterdrückt wird.


und danach kannst du mit mysql-errno (http://www.php.net/manual/de/function.mysql-errno.php) abfragen, welchen code der aufgetretene fehler hat, und in abhängigkeit davon eine meldung ausgeben.


alternative wäre, du machst vorher erst einen select, um zu kucken ob der username schon vorhanden ist.

 
mrhappiness
01-04-2003, 11:35 
 
select count(username) anzahl from tabelle where username='derangegebenename'jetzt kannst du in php so wie immer das ergebnis auslesen und wenn es 0 is, dann gibt's denn user noch nich, wenn es 1 is dann steht er schon drin

 
dagato
01-04-2003, 14:05 
 
Thank's,
aber wo gebe ich den Code ein?

Ich habe eine send.php, die die eingegeben Daten an die Datenbank übergibt:

<?php
include ("dbconnect.inc.php");

// Daten eines neuen Users in die Datenbank eintragen

$sql = "INSERT INTO AdminUser (anrede,nachname,vorname,username,passwort,organisation,strasse,hausnummer,plz,ort,land,sprache,emai l,phone,fax,newsletter,bank,kontoinhaber,konto,blz,steuerid)
VALUES ('$anrede','$nachname','$vorname','$username','$passwort','$organisation','$strasse','$hausnummer',' $plz','$ort','$land','$sprache','$email','$phone','$fax','$newsletter','$bank','$kontoinhaber','$kon to','$blz','$steuerid')";
$result = mysql_query($sql);

if(!$result){echo mysql_error();};

?>



Ich habe aber auch mein Eingabeformular, was nach nochmaliger Prüfung die daten an die send.php übergibt - und erst dannach, meine erwähnte Fehlermeldung auswirft ?!

Gruß Dirk

 
mrhappiness
01-04-2003, 14:11 
 
im selben skript in dem auch das insert ist, aber vorher

 
dagato
01-04-2003, 14:17 
 
Thank's - ist eigentlich auch logisch, wenn man etwas genauer drüber nachdenkt!

Gruß Dirk

 
TobiaZ
01-04-2003, 14:40 
 
Mal ein paar Grundsätzliche Regeln: (ist nicht böse gemeint;))

Wir haben hier eine Suche, die in vielen Fällen die Lösung parat hat. Oft geht das schneller als das Verfassen deines Posts.
Dann haben wir PHP/CODE-Tags, mit denen man den Code besser lesen kann.
Und vorher überlegen ist auch in Ordnung.

:D

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:06 Uhr.