user und mailadresse in der datenbank abfragen bei Neu Anmeldung

mitch24

Grünschnabel
Hallo,

irgendetwas stimmt nicht, er überprüft mir nicht den User bzw. die Emailadresse gleichzeitig!

Möchte wenn sich ein user neu anmeldet neu registriert möchte ich das die datenbank abgefragt wird ob der user bzw. die Emailadresse schon vorhanden ist.

register.php (teil davon)
PHP:
if ($form == 1) {
include ("config.php");
$user_result = mysql_query("SELECT * FROM $user_tabelle WHERE name = '$reg_name' OR '$reg_mail'", $mysql_ce);
if (mysql_affected_rows($mysql_ce) > 0){
$fehlen = $fehlen."<LI>Benutzername odrer Mailadresse vorhanden";
echo'<div align="center"><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif">Der angegeben Benutzername oder mailadresse ist leider schon vorhanden</font></div>';
}
FEHLER FEHLER FEHLER FEHLERFEHLER FEHLER ******

*******************************************

Wenn ich aber diesen code verwende funktioniert aber nur die USER abfrage aber nicht ob die Mail vorhanden ist:
PHP:
if ($form == 1) {
include ("config.php");
$user_result = mysql_query("SELECT * FROM $user_tabelle WHERE name = '$reg_name'", $mysql_ce);
if (mysql_affected_rows($mysql_ce) > 0){
$fehlen = $fehlen."<LI>Benutzername vorhanden";
echo'<div align="center"><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif">Der angegeben Benutzername ist leider schon vorhanden</font></div>';
}
also mache ich noch was Falsch mit der '$reg_name' OR '$reg_mail'", $mysql_ce

aber was ****?
 
Zuletzt bearbeitet von einem Moderator:
Hallo mitch24 und Willkommen hier im Forum.

Bitte fasse deine Codeschnipsel in [code=php]...[/code] ein, so ist das ganze leichter zu lesen. Dann sieht das ganze wie folgt aus:

PHP:
if ($form == 1) {
  include ("config.php");
  $user_result = mysql_query("SELECT * FROM $user_tabelle
    WHERE name = '$reg_name' OR '$reg_mail'", $mysql_ce);

  if (mysql_affected_rows($mysql_ce) > 0) {
    $fehlen = $fehlen."<LI>Benutzername oder Mailadresse vorhanden";

    echo '<div align="center"><font color="#FF0000" size="2"
      face="Arial, Helvetica, sans-serif">Der angegeben Benutzername
      oder mailadresse ist leider schon vorhanden</font></div>';
}

Mit der mysql_affected_rows() rufst du nach einem UPDATE oder DELETE die Anzahl der betroffenen Zeilen ab, für deine Zwecke also die falsche Funktion. Du brauchst hier eher die mysql_num_rows().

Grüße,
BK
 
Zuletzt bearbeitet:
Hallo mitch,

In deiner SQL-Abfrage muss nach dem OR das DB-Feld erneut genannt werden, also name=

Code:
... name='$reg_name' OR name='$reg_mail'

MfG
 
Danke drucko, das hab ich jetzt glatt auch übersehen.

Grüße,
BK


Hallo!

Also wenn ich code nummer 1 mache:
PHP:
if ($form == 1) {
  include ("config.php");
  $user_result = mysql_query("SELECT * FROM $user_tabelle
    WHERE name = '$reg_name' OR name = '$reg_mail'", $mysql_ce);

if (mysql_affected_rows($mysql_ce) > 0) {
    $fehlen = $fehlen."<LI>Benutzername oder Mailadresse vorhanden";
Bekomme ich wenigstens eine Fehlermeldung das der Benutzer schon in der Datenbank vorhanden ist...

************

Also wenn ich code nummer 2 mache:
PHP:
if ($form == 1) {
  include ("config.php");
  $user_result = mysql_query("SELECT * FROM $user_tabelle
    WHERE name = '$reg_name' OR name = '$reg_mail'", $mysql_ce);

if (mysql_num_rows($mysql_ce) > 0) {
    $fehlen = $fehlen."<LI>Benutzername oder Mailadresse vorhanden";
Bekomme ich keine Fehlermeldung und der User trägt sich so oft er möchte in die DB ein auch die emailadresse die schon vorhanden ist...

************

Also wenn ich code nummer 3 mache:

if ($form == 1) {
include ("config.php");
$user_result = mysql_query("SELECT * FROM $user_tabelle WHERE name = '$reg_name'", $mysql_ce);
if (mysql_affected_rows($mysql_ce) > 0){
$fehlen = $fehlen."<LI>Benutzername vorhanden";
echo'<div align="center"><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif">Der angegeben Benutzername ist leider schon vorhanden</font></div>';
}
$reg_date = date("U");
$reg_pw2 = md5($reg_pw2);
$dbanfrage = "INSERT into $user_tabelle
(name, pw2, mail, reg_date, status, level, name1)
values ('$reg_name',
'$reg_pw2',
'$reg_mail',
'$reg_date',
'wait',
'1',
'$reg_name1'
)";

dieser code funktoniert aber leider nur mit der USER abfrage... wenn der User in der DB vorhanden ist bekomme ich die meldung username/benutzer schon vorhanden... verstehe aber nicht das das mit der mail nicht funkt`****?

sicher nur kleiner fehler aber ich komme nicht drauf****?
 
mysql_num_rows benötigt als Parameter nicht den Link-Identifier, sondern dein SQL-Result! Sprich bei dir $user_result

Achja und: Die eMail-Adresse steht im Feld "mail" nehme ich an? Dann musst du natürlich auch "...WHERE mail = '$reg_mail'..." prüfen!

MfG
 
Zuletzt bearbeitet:
Zurück