mister mister: php doppelte eintraege

so folgend der quellcode der leider nur den benutzernamen checkt ----
//Abfrage ob der username schon in der datenbank steht...
$query = "SELECT * FROM arlekino_user WHERE user='$user'";
$result = mysql_db_query($mysqldb, $query, $connection) or die ("Error in query: $query. " . mysql_error());
if(mysql_num_rows($result) >= 1) { header("Location: fehler.php"); exit; }
else
 {

$query = "INSERT INTO arlekino_user SET user='$user', password='$password', email='$email', handy='$handy', base='$base'";

}
-----
nun w?ch gerne wissen wie ich auch noch die in der datenbank stehenden $email checken... wie ???danke schonmal :)

  1. Hi,

    if(mysql_num_rows($result) >= 1) { header("Location: fehler.php"); exit; }

    diesen Location-Header *darfst* Du so nicht versenden, er *muss* eine absolute URL beinhalten. Siehe Archiv.

    nun w?ch gerne wissen wie ich auch noch die in der datenbank stehenden $email checken... wie ???danke schonmal :)

    Du könntest die WHERE-Clause erweitern, oder mit if arbeiten.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. wenn ich ne 2te if schleife da dran hänge dann schreibt der gleich einen error.

      1. Hallo!

        wenn ich ne 2te if schleife da dran hänge dann schreibt der gleich einen error.

        Wäre nicht uninteressant zu erfahren was genau Du gemacht hast (Quellcode) und was geanu Du für eine Fehlermeldung hast.

        Grüße
        Andreas

        PS: http://www.dclp-faq.de/q/q-terminologie-if.html

        1. also, kann doch eigentlich nicht so schwer sein nur ich komme nicht drauf. Ich übersetzte mal wie es logisch sein sollte:
          "Hallo datenbank ich bins dein admin", "schau mal bitte nach ob der user=user-eingabe und wo ob die email=email-eingabe doppelt sind und gib dann pro fehler eine meldung aus.
          ach so wenn dann noch jemand einen link sehen will->
          http://www.indict.de/arlekino/user_anmeldung.php

          1. hi,

            ach so wenn dann noch jemand einen link sehen will->
            http://www.indict.de/arlekino/user_anmeldung.php

            da sehen wir html-code, aber kein stück php. wie soll uns das helfen, zu suchen wo dein fehler leigen könnte?

            gruss,
            wahsaga

            1. ok dann der ganze code hier->http://www.indict.de/arlekino/user_anmeldung.html
              der soll einfach nur noch die email checken ob die nicht auch schon in der dB steht.

              1. Hallo!

                hier->http://www.indict.de/arlekino/user_anmeldung.html
                der soll einfach nur noch die email checken ob die nicht auch schon in der dB steht.

                Ja, aber das musst Du "ihm" auch sagen dass er das machen soll.
                Bei Dir steht:

                //Abfrage ob der username schon in der datenbank steht...
                $query = "SELECT * FROM arlekino_user WHERE user='$user'";

                Du sagst uns "soll checken ob email in DB steht...".

                Dazu sagte Cheathah in der 1. Antwort:

                "Du könntest die WHERE-Clause erweitern, oder mit if arbeiten."

                So. Wo ist jetzt das Problem? Ich sehe nicht dass Du Cheathah's Tipp ausprobiert hast, und ich sehe auch keinen Fehler wegen einer If-Anweisung.

                Grüße
                Andreas

                1. $query = "SELECT * FROM arlekino_user WHERE user='$user' AND email='$email'";
                  das funtz net
                  if(email=$email OR user='$user') geht auch nicht... was dann ?

                  1. Hi,

                    das funtz net

                    das wast net? Meinst Du "funktioniert nicht"? Das ist keine Fehlerbeschreibung.

                    if(email=$email OR user='$user') geht auch nicht...

                    Das ist keine gültige PHP-Syntax; und nebenbei bemerkt heißt der Operator für Stringvergleiche "==", nicht "=" - das ist eine Zuweisung.

                    Cheatah

                    --
                    X-Will-Answer-Email: No
                    X-Please-Search-Archive-First: Absolutely Yes
                  2. $query = "SELECT * FROM arlekino_user WHERE user='$user' AND email='$email'";
                    das funtz net

                    Was heißt "funzt net"? Fehlermeldung? Führt nicht zum gewünschten Ergebnis? Inwiefern?

                    Überlege was Da abfragst:

                    "Wähle alls Spalten von der Tabelle arlekine_user dessen Benutzername gleich $user ist, und dessen Email-Adresse gleich $email ist.

                    Ist es das was Du willst?

                    Bedenke die darauf folgende Zeile:

                    if(mysql_num_rows($result) >= 1) { header("Location: fehler.php"); exit; }

                    Das heißt: wenn Du mit obiger Abfrage 1 oder mehr Datensätze gefunden hast, dann soll eine Fehlernmeldung kommen(Hierzu siehe bitte auch: http://www.dclp-faq.de/q/q-http-redirect.html, Du machst das wie gesagt wurde falsch)

                    Jedenfalls, wilst Du das eien Fehlermldung nur in dem Fall kommt wenn es mindestens einen Datensatz gibt der sowohl $user als auch $email enthält?

                    if(email=$email OR user='$user')

                    Das ist wiedeer was ganz anderes, wo schreibst Du das so hin? AUß0erdem verwendewts Du hier OR im Gegensatz zu vorher.

                    Entweder DU filterst mit Hilfe der WHERE Bedingung, oder Du filterst nach der Abfrage indem Du das erhebnis, noch in PHP auswertest, mit Hilfe von if halt.

                    geht auch nicht... was dann ?
                    Was geht nicht? Wenn Du beim Notarzt anrufst sagst Du dann auch "hallo, hier gehts jemand schlecht, tschö!"?

                    Grüße
                    Andreas

  2. hi,

    $query = "SELECT * FROM arlekino\_user WHERE user='{$user}' OR email='{$email}'";

    so bekommst du alle Zeilen die entwerder $user oder $email in den
    entsprechenden spalten enthalten, wenn das passiert dann fehler
    ausgeben: Email oder Name doppelt vorhanden!

    schöne Grüße
    FICHTL