Stephanie G.: Bei einer Datenbank überprüfen, ob Eintrag schon vorhanden ist

Hallo!

Aufgabenstellung ist wie folgt:
In 2 Feldern werden Name & Passwort eingegeben und abgeschickt.
Irgendwie soll nun überprüft werden, ob dieser Name & dieses Passwort schon in der Datenbank gespeichert sind.

Wie stelle ich das an?

mfg
Stephanie G.

  1. z.b. SELECT count(*) from deinetabelle where userid="test" and passwort = "none"

    wenn es sich um was wichtiges handelt solltes du die eingaben noch gegen sql injenction absichern.

    gruß fz

    Hallo!

    Aufgabenstellung ist wie folgt:
    In 2 Feldern werden Name & Passwort eingegeben und abgeschickt.
    Irgendwie soll nun überprüft werden, ob dieser Name & dieses Passwort schon in der Datenbank gespeichert sind.

    Wie stelle ich das an?

    mfg
    Stephanie G.

    1. noch ein nachtrag
      mit dieser abfrage (musst du noch an dein db-design anpassen) bekommst du die anzahl der gefunden zeilen des resultsets zurückgeliefert.
      prüfe das ganze mit >0 und du kannst so feststellen, ob diese kombination schon existiert.

      z.b. SELECT count(*) from deinetabelle where userid="test" and passwort = "none"

      wenn es sich um was wichtiges handelt solltes du die eingaben noch gegen sql injenction absichern.

      gruß fz

      1. aha, das ganze sieht dann so aus ->

        $abfrage = "SELECT count(*) from benutzer where name = '$name' and pw = '$pw'";

        if ($abfrage > 0)
        {
        echo "Dieser Username existiert bereits!";
        }

        habe ich das so richtig verstanden? :)

        1. Hallo

          $abfrage = "SELECT count(*) from benutzer where name = '$name' and pw = '$pw'";

          if ($abfrage > 0)
          {
          echo "Dieser Username existiert bereits!";
          }

          habe ich das so richtig verstanden? :)

          Fast: $abfrage ist erstmal nur der DB_Query (die Anfrage an die DB). Die Anfrage musst du der DB auch übermitteln (mysql_query()) und dann kannst du mit mysql_num_rows() die Anzahl der Datensätze zählen.

          $abfrage = "SELECT count(*) from benutzer where name = '$name' and pw = '$pw'";  
          $ergebnis = mysql_query($abfrage);  
            
          if (mysql_num_rows($ergebnis) > 0)  
             {  
             echo "Dieser Username existiert bereits!";  
             }
          

          Tschö, Auge

          --
          Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
          (Victor Hugo)
          Veranstaltungsdatenbank Vdb 0.1
          1. Moin!

            Fast: $abfrage ist erstmal nur der DB_Query (die Anfrage an die DB). Die Anfrage musst du der DB auch übermitteln (mysql_query()) und dann kannst du mit mysql_num_rows() die Anzahl der Datensätze zählen.

            Und da kommt immer 1 raus, weil MySQL immer ein Ergebnis für die Anzahl der Datensätze liefert.

            Das Ergebnis steckt im Query-Resultat, nicht in dessen Anzahl an Zeilen!

            - Sven Rautenberg

            --
            My sssignature, my preciousssss!
            1. Hallo

              Und da kommt immer 1 raus, weil MySQL immer ein Ergebnis für die Anzahl der Datensätze liefert.

              Ist mir _nach_ dem Abschicken auch aufgefallen (wegen: count(*)).

              Das Ergebnis steckt im Query-Resultat, nicht in dessen Anzahl an Zeilen!

              jep

              Tschö, Auge

              --
              Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
              (Victor Hugo)
              Veranstaltungsdatenbank Vdb 0.1
          2. Hallo

            habe ich das so richtig verstanden? :)

            Fast: $abfrage ist erstmal nur der DB_Query (die Anfrage an die DB). Die Anfrage musst du der DB auch übermitteln (mysql_query())

            soweit richtig ...

            und dann kannst du mit mysql_num_rows() die Anzahl der Datensätze zählen.

            ... das musst du nicht mehr tun, da das ja bereits MYSQL (mit: count(*)) für dich erledigt.

            Tschö, Auge

            --
            Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
            (Victor Hugo)
            Veranstaltungsdatenbank Vdb 0.1
            1. »»$abfrage = "SELECT count(*) from benutzer where name = '$name' and pw »»= '$pw'";
              »»$ergebnis = mysql_query($abfrage);

              oh ja natürlich, mysql_query hab ich vergessen...

              also wenn das dann so wie hier ausgeführt wird, steht in $ergebnis die anzahl der zeilen, und ich muss nur mehr abfragen

              if($ergebnis > 0)
              {
              echo "Username existiert bereits!";
              }

              stimmts so?
              Dürfte, nachdem was Sven Rautenberg geschrieben hat, passen...

              Stephanie G.

              1. Hallo

                »»$abfrage = "SELECT count(*) from benutzer where name = '$name' and pw »»= '$pw'";
                »»$ergebnis = mysql_query($abfrage);

                also wenn das dann so wie hier ausgeführt wird, steht in $ergebnis die anzahl der zeilen ...

                Jain, so ist es eine Ressouce, die erst, hier wohl am besten durch mysql_result(), in ein lesbares Ergebnis umgewandelt werden muss.

                Allerdings liegt das Ergebnis nicht so vor, wie du es haben willst. Es wird immer nur _eine_ Zeile sein. Und zwar jene eine, in der drin steht, was mit 'count(*)' ermittelt wurde. Dein if-Zweig wird immer zutreffen, denn auch, wenn kein Datensatz die abgefragte Kombination enthält, wird ein Ergebnis zurückgegeben, und zwar '0'.
                Die genaue Anzahl der gezählten Zeilen verbirgt sich erst im umgewandelten Ergebnis.

                $abfrage = "SELECT count(*) from benutzer where name = '$name' and pw = '$pw'";  
                $ergebnis = mysql_query($abfrage);  
                $anzahl = mysql_result($ergebnis); // <- Hier wird die Umwandlung vorgenommen  
                echo $anzahl; // Testausgabe  
                  
                if($anzahl > 0)  
                   {  
                   echo "Username existiert bereits!";  
                   }
                

                Tschö, Auge

                --
                Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
                (Victor Hugo)
                Veranstaltungsdatenbank Vdb 0.1