if-Anweisung reagiert nach Test nicht mehr

@ lenaMQ

Wie kann ich es ermöglichen mit mysql_error() , dass dann angezeigt wird:

"Ups du hast dich hier schoneinmal eingetragen"

Ich würde die MySQL Fehlermeldung abfangen und dann dafür per echo Ausgeben Ups:) du hast dich schon angemeldet....
Also wenn mysql_error= True direkt nach dieser Abfrage dann echo Du hast dich schon angemeldet.
Das müsste funktionieren
Wenn du Code brauchst kann ich dir den geben vielleicht reicht ja auch der Denkanstoß schon...

Da stehen einfach nur die Anzahl der vorhandenen Datensätze drin.siehe Beitrag über dir.. Wurde geändert, da im array anscheinend der alte maximalwert gespeichert wurde.

Genau das habe ich konobi die ganze Zeit zu erklären versucht....
 
Zuletzt bearbeitet:
@ lenaMQ



Ich würde die MySQL Fehlermeldung abfangen und dann dafür per echo Ausgeben Ups:) du hast dich schon angemeldet....
Also wenn mysql_error= True direkt nach dieser Abfrage dann echo Du hast dich schon angemeldet.
Das müsste funktionieren
Wenn du Code brauchst kann ich dir den geben vielleicht reicht ja auch der Denkanstoß schon...



Genau das habe ich konobi die ganze Zeit zu erklären versucht....


Wo setze ich das am besten hin?

PHP:
mysql_query($sql); 
  echo '<body bgcolor="#000000" text="#FFFFFF" style="font-family:Arial,Tahoma; font-size:10pt;"> Der Eintrag war erfolgreich!</body>';

Danach?
 
Code:
if ($_POST['submit'])
{
 $sql = 'INSERT INTO verlosung(NAME, VORNAME, EMAIL) VALUES("'.$_POST['NAME'].'","'.$_POST['VORNAME'].'","'.$_POST['EMAIL'].'")';
mysql_query($sql);
  echo '<body bgcolor="#000000" text="#FFFFFF" style="font-family:Arial,Tahoma; font-size:10pt;"> Der Eintrag war erfolgreich!</body>';
}

Ich würde es nach
$sql = 'INSERT INTO verlosung(NAME, VORNAME, EMAIL)
setzen weil du dort ja den Eintrag in die DB machen willst.
Wenn mysql dort feststellt das eine E-mail Adresse bereits existiert wird dort auch der Fehler ausgegeben.

Wenn du es danach machst:
Code:
mysql_query($sql); 
  echo '<body bgcolor="#000000" text="#FFFFFF" style="font-family:Arial,Tahoma; font-size:10pt;"> Der Eintrag war erfolgreich!</body>';
Wird ja die Meldung Der Eintrag war Erfolgreich ausgegeben und das war er ja nicht weil die Mail Adresse bereits existierte.
 
Also die Funktion mysql_error() gibt wenn ich das richtige sehe False zurück wenn kein Fehler passiert ist und irgendeinen anderen Wert also zum Beispiel einen String mit Fehlercode wenn ein Fehler passiert ist.
//Edit: Die Funktion mysql_error() gibt eine leere Zeichenkette zurück wenn kein Fehler aufgetreten ist. Daher Code geändert...müsste jetzt so klappen...siehe unten

Ich würde es dann so machen:

Code:
&fehler = mysql_error()
if ($fehler !='')
{
echo '<body bgcolor="#000000" text="#FFFFFF" style="font-family:Arial,Tahoma; font-size:10pt;"> Ups du hast dich schon eingetragen!</body>';
}

//Edit: also so ghets glaube ich nich : If (mysql_error()==TRUE) -> habs daher im code hierrüber schon geändert
->


Ich bin mir nicht ganz sicher ob man die Funktion so abfragen kann vielleicht solltest du vorher noch
Code:
&fehler = mysql_error()
schreiben.
Und dann in der If Abfrage
Code:
&fehler== TRUE oder $fehler !=''
vergleichen:

Probiers mal und wenn es so nicht hinhaut dann schreib mir einfach nochmal mit der Fehlermeldung die kommt und ich überleg mir was anderes...:)
 
Zuletzt bearbeitet:
Hab das jetzt so gemacht:

PHP:
if ($_POST['submit'])
{
 $sql = 'INSERT INTO verlosung(NAME, VORNAME, EMAIL) VALUES("'.$_POST['NAME'].'","'.$_POST['VORNAME'].'","'.$_POST['EMAIL'].'")';
          if (mysql_error()==TRUE)
          {
          echo '<body bgcolor="#000000" text="#FFFFFF" style="font-family:Arial,Tahoma; font-size:10pt;"> Ups du hast dich schon eingetragen!</body>';
 }
       else {mysql_query($sql);
echo '<body bgcolor="#000000" text="#FFFFFF" style="font-family:Arial,Tahoma; font-size:10pt;"> Der Eintrag war erfolgreich!</body>';
}
}
else
...

Passiert aber nichts außer : "Eintrag war erfolgreich" - - Der Eintrag wird aber nicht doppelt eingetragen.
 
Mhh ne dachte ja zuerst auch das das so geht hatte aber dann noch mein Post geändert.
mysql_error() gibt entweder einen Fehler oder eine leere Zeichenkette zurück wenn kein fehler aufgetreten ist, daher müsste das:
Code:
&fehler = mysql_error()
if ($fehler !='')
{
echo '<body bgcolor="#000000" text="#FFFFFF" style="font-family:Arial,Tahoma; font-size:10pt;"> Ups du hast dich schon eingetragen!</body>';
}
funktionieren.
Die Funktion gibt also nicht FALSE zurück wie ich mir das vorher gedacht hatte.

//Edit:

Der Eintrag wird aber nicht doppelt eingetragen.
Ja den Eintrag mach MySQL auch nicht weil du ja bei E-mail unique eingestellt hast.
Bist du dir denn überhaupt sicher das da eine Fehlermeldung kommt wenn jemand mit der selben Mail versucht sich einzutragen...wenn nicht funktioniert das nämlich nmicht so wie ich es dir gesagt habe.
 
Zuletzt bearbeitet:
Da kommt wie oben "Eintrag erfolgreich"

hatte davor halt nur mal echo mysql_error(); eingegeben und da kam vor dem Satz die Fehlermeldung. Irgendwie muss man Fehlermeldung doch abfragen und in ein echo umwandeln können
 
Zurück