Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] MySQL Abfrage welcher Wert vorhanden ist

Einklappen

Neue Werbung 2019

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

  • [Erledigt] MySQL Abfrage welcher Wert vorhanden ist

    Moin,
    ich versuche gerade für ein kleines Versuchsobjekt von mir eine Abfrage zu machen, bin allerdings ein ziemlicher PHP Anfänger.

    Bis jetzt habe ich das:
    PHP-Code:
    if (isset($_SESSION['id'])) {
                
    $name $_SESSION['nutzername'];
                
    $db mysqli_connect(DB_HOSTDB_BENUTZERDB_PASSWORTDB_NAME) or die(mysql_error());
                
    $sql "SELECT * FROM nutzer WHERE`nutzername = '$name' AND aktiviert = '1'";
                
    $daten mysqli_query($db$sql);
                if(
    mysql_num_rows($daten)==1){
                    echo 
    "Aktiviert.";
            }else{
                   echo 
    "Nicht aktiviert.";
            }
            } 
    Was das ganze bewirken soll?
    Es soll eine Abfrage sein welche über die MySQL Datenbank abfragt ob in der Spalte "aktiviert" der Wert 0 oder 1 steht. 0 = nicht aktiviert, 1 = aktiviert.

    Allerdings funktioniert es nicht ganz wie ich es will und es kommt IMMER "Nicht aktiviert raus".


  • #2
    Du wirfst da die mysql_* und mysqli_* Erweiterungen durcheinander.

    PHP-Code:
    mysqli_error()
    mysqli_num_rows($daten

    Schonmal gut, dass du überhaupt mysqli nutzt, als nächtes solltest du noch Prepared Statements statt normaler queries nutzen
    Relax, you're doing fine.
    RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

    Kommentar


    • #3
      Hab ich geändert, hat aber nichts gebracht.

      PHP-Code:
      if (isset($_SESSION['id'])) {
                  
      $name $_SESSION['nutzername'];
                  
      $db mysqli_connect(DB_HOSTDB_BENUTZERDB_PASSWORTDB_NAME) or die(mysqli_error());
                  
      $sql "SELECT * FROM nutzer WHERE`nutzername = '$name' AND aktiviert = '1'";
                  
      $daten mysqli_query($db$sql);
                  if(
      mysqli_num_rows($daten)==1){
                      echo 
      "Aktiviert.";
              }else{
                     echo 
      "Nicht aktiviert.";
              }
              } 

      Kommentar


      • #4
        1. Warum selektierst du alle Daten (mit dem *) wenn du danach gar nichts davon verwendest?
        2. Ist das Feld `aktiviert` tatsächlich ein String, oder wozu glaubst du dort Anführungszeichen zu verwenden zu müssen?
        3. Nach dem WHERE fehlt ein Leerzeichen. (+ das fehlende `, siehe VPh)
        4. Prüfe mal ob die Abfrage tatsächlich ein Resultat ausgibt, z.B. mit dem Konsolen-Client von mysql oder phpmyadmin.

        Kommentar


        • #5
          In deiner Query ist ein ` zu wenig
          Relax, you're doing fine.
          RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

          Kommentar


          • #6
            Danke funktioniert nun. Habe das Leerzeichen sowie das ` eingefügt.

            Kommentar

            Lädt...
            X