Kontrolle ob User schon vorhanden -> Fehlermeldung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Kontrolle ob User schon vorhanden -> Fehlermeldung

    Ich hab nen anmeldeforular und will nun schauen ob der angegebene Benutzername schon vorhanden ist.

    PHP-Code:
    if ($submit

        {
                   
    $sqlkommando="SELECT * FROM benutzer01,benutzer02 WHERE username = '$username'";
                      
    $sqlanfrage=mysql_query($sqlkommando) or die("Error: " mysql_error());
                      if(
    mysql_num_rows($sqlanfrage) == 1
                        {

                            echo
    "hahaha, such dir nen anderen Benutzernamen";

                        }
        elseif(
    mysql_num_rows($sqlanfrage) == 0)
            { 
                echo
    "eintragen kommt nu";
                
    $sqlkommando "INSERT INTO benutzer01 (username, passwort, anrede, vorname, nachname, strasse01, hausnr01, plz01, ort01) VALUES ('$username','$passwort','$anrede','$vorname','$nachname','$strasse01','$hausnr01','$plz01','$ort01')";
                
    mysql_query($sqlkommando) or die("Error: " mysql_error()); 
                echo 
    "reg hat geklappt";
            }
        }

    else
    {
    //Anmeldeformular wird ausgegeben

    ok, soweit, so gut.

    Nur bekomm ich, egal ob der Benutzername vergeben ist oder nicht die meldung

    PHP-Code:
    ErrorColumn'username' in where clause is ambiguous 
    Was kann ich dagegen machen? Klar, er will irgendwas eintragen, aber soweit kann er doch garnicht kommen, da er doch schon checken müsste, dass es einen solchen Benutzer bereits gibt.

  • #2
    Re: Kontrolle ob User schon vorhanden -> Fehlermeldung

    Original geschrieben von Aurelius
    Error: Column: 'username' in where clause is ambiguous
    du hast im FROM zwei tabellen stehen.

    und in beiden steht wohl 'username' als spalte drin. woher soll nun mysql wissen, welche auf welche tabelle sich dein 'username' bezieht?

    *VERSCHIEB* nach sql.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      oooops, ok, danke für die hilfe.

      Kommentar


      • #4
        ähm...kann mir ma wer nen Tipp geben, wie man das mit JOIN machen kann?

        die Zeilen ausgeben, in denen der userneme mit der variablen userneme identisch ist? sowas mach ich ja normalerweise mit where aber so.

        Kommentar


        • #5
          ähm. wie sehen denn ähm deine tabellen aus?

          und wie ähm sind sie ähm verbunden?
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Ok, da ist einmal die Tabelle mit den normalen Benutzern

            Benutzer01

            username, passwort, vorname, nachname usw.

            dann kommt die zweite Tabelle mit den Firmen

            benutzer02

            username, passwort, firmenname, vorname, nachname usw.

            Mein Wunsch war es ja nun, das ganze nicht mit zwei Querries zu machen in denen dann geprüft wird, ob der Benutzername aus dem Anmeldeformular schon vorhanden ist, sondern die Tabellen mit Join zu verknüpfen und dann zu schauen, ob die Anzahl der gefundenen Zeilen, bei denen der Formularusername mit den Usaernames aus den beiden Tabellen, gleich 0 ist um dann ein INSERT durchführen zu können, sprich den neuen User anzulegen.

            Kommentar


            • #7
              hier .... *vordiefuessewerf* ....
              PHP-Code:
              $sql "SELECT
                          B1.username
                      FROM
                          benutzer01 B1
                              INNER JOIN benutzer02 B2 USING(username)
                      WHERE
                          B1.username = '"
              .$username."'
                      LIMIT 1"
              ;
                      
              $res mysql_query($sql) or die(mysql_error());
              if (
              mysql_num_rows($res)==1)
              {
                  echo 
              'benutzer schon vorhanden';
              }
              else
              {
                  echo 
              'benutername ok. nun kann ich ihn eintragen';

              wobei ich mich frage, warum du nicht eine tabelle für die userid+user+passwd+typ machst.

              und zwei weitere tabellen für firma und benutzer?

              auch ist es ggfls sinnvoll nur bei normalen users das feld 'firma' auf NULL zu setzen. damit kannst du auch alles in einer tabelle abfackeln.
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                ich hab Angst, dass die Anzahl der Felder dann zu gross wird. Ausserdem fand ich ganz gut, dass von den Firmenseiten auch nur auf die Firmentabelle zugegriffen werden kann und das ganze dann überschaubarer wird.

                danke nochmal für die Hilfe.

                Kommentar

                Lädt...
                X