Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Methode liefert keinen Wert

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Methode liefert keinen Wert

    hi,
    habe folgendes problem!
    ich habe eine datenbank klasse in der ich mit
    PHP-Code:
    $this->num_rows = @mysql_num_rows($ergebnis); 
    als attribut setze!
    Die Datenbankklasse funktioniert einwandfrei, wenn man nun diese testet:
    PHP-Code:
    $db = new db();
    ....
    Irgendwelche Selcet Abfragen
    echo $db->num_rows(); 
    wird auch eine Zahl angezeigt!
    Soweit sogut!
    nun hab ich aber ne neue klasse die zum anmelden eines users dienen soll, register.
    nun will ich in dieser klasse mit meiner datenbankklasse auf die db zugreifen, mach mir ein neues db objekt, z.b. dieser ausschnitt:
    PHP-Code:
    PRIVATE function user_exist($user){
        
    $tabellenname "users";
        
    $sql "SELECT * FROM $tabellenname WHERE username='$user'";
        
    $db = new db();
        
    $result $db->execute($db->prepare($sql));
        if(
    $db->num_rows() > 0){
            return 
    true;
        }else{
            return 
    false;
        }

    ergibt immer true, da $db->num_rows() nichts zurück gibt!
    aber wieso nicht?wo liegt mein denkfehler?
    mfg

  • #2
    $db->num_rows()

    Ein Attribut ist keine Methode.

    ergibt immer true, da $db->num_rows() nichts zurück gibt!
    Sicher nicht, denn null ist nicht > 0.

    Kommentar


    • #3
      lese, ich habe geschrieben, dass ich $this->num_rows auf den wert, den mir mysql_num_rows gibt, setze!
      und diese gebe ich dann mit einer get methode zurück(Num_rows() )

      Kommentar


      • #4
        Tja, das kann ich ja nicht riechen, dass die Methode auch so heißt. An der anderen Aussage stimmt trotzdem was nicht. Ich vermute, es funktioniert.

        Kommentar


        • #5
          was soll nicht stimmen?
          nein, es funktioniert eben nicht!
          ich hab nen eintrag in der tabelle mit nem usernamen, dann test ich das mal ohne wert:

          PHP-Code:
          PRIVATE function user_exist(){
              
          $tabellenname "users";
              
          $user "meine_email_adresse_die_auch_in_der_datenbank_steht";
              
          $sql "SELECT * FROM $tabellenname WHERE username='$user'";
              
          $db = new db();
              
          $result $db->execute($db->prepare($sql));
              if(
          $db->num_rows() > 0){
                  echo 
          $db->num_rows();
                  return 
          true;
              }else{
                  return 
          false;
              }

          zurückgegeben wird nur true, ausgegeben wird nichts da $db->num_rows() nichts liefert

          Kommentar


          • #6
            Fang an zu debuggen (null ist faktisch nicht größer 0) und ändere bitte noch den Threadtitel.

            Kommentar


            • #7
              Ich kann mir auch nicht vorstellen dass das nicht gehen soll.
              NULL, false, -1, 0 sind alle nicht größer als 0.
              Versuche mal:
              PHP-Code:
              if($db->num_rows() > 0){ 
                      echo 
              "wirklich true?";
                      return 
              true
                  } 
              Ich glaub nicht das Dein true aus dieser privaten Methode kommt.

              Kommentar


              • #8
                Die erste Anlaufstelle sollte immer ein [MAN]var_dump[/MAN] sein.

                Kommentar

                Lädt...
                X