Funktion gibt leeres Ergebnis zurück

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

  • Funktion gibt leeres Ergebnis zurück

    Holla,

    da ich hier immer kompetente Hilf bekommen habe, ein neues Problem(chen):

    ich habe eine Datenbankanfrage in eine Funktion gepackt:


    PHP-Code:

    function activate ($username$usermail$ac_code)

    {
        
    $sql="SELECT * FROM users 
               WHERE UserName='"
    .$username."' 
               AND   Usermail='"
    .$usermail."' 
               AND state='"
    .$ac_code."' LIMIT 1";

            
    $res mysql_query($sql);
      
    $erg mysql_fetch_assoc($res);
         return 
    $erg['UserID'];


    Und will das Ergebnis nun in einem anderen Script daraufhin überprüfen,
    ob es größer als 0, also gültig, ist:

    PHP-Code:

    $userid 
    activate($username$usermail$ac_code);
     
     if (
    $userid ) {
      echo 
    'Diese Kombination aus Nutzername und 
               Aktivierungscode existiert nicht<br>'
    ;
      echo 
    'Abbruch der Registrierung';
      exit;
                           }
    echo 
    'Deine UserID:'.$userid.'<br>'
    Mein Problem ist nun, dass das was da zurückkommt IMMER gleich Null zu sein scheint,
    also es kommt quasi nichts zurück.
    (Der entsprechende Wert in der Datenbank ist definitiv größer als 1)

    Kann mich vielleicht jemand grad mal aus dem Wald hinausführen?

    Danke schonmal im Vorraus ...

  • #2
    Hm

    mach mal
    PHP-Code:
    mysql_query(..) or die(mysql_error()); 
    umd MySQL Fehlermeldungen abzufangen

    Evtl mal Query ausgeben und manuell in PHPMyAdmin eingeben und schaun ob der richtige Datensatz ausgespuckt wird
    mfg

    Kommentar


    • #3
      PHP-Code:
      function activate ($username$usermail$ac_code)

      {
          
      $sql="SELECT * FROM users 
                 WHERE UserName='"
      .$username."' 
                 AND   Usermail='"
      .$usermail."' 
                 AND state='"
      .$ac_code."' LIMIT 1";

              
      $res mysql_query($sql);
        
      $erg mysql_fetch_assoc($res);
        
      var_dump($erg);
        exit;
           return 
      $erg['UserID'];

      Wenn du testweise den var_dump() einbaust, was kommt denn dabei heraus ?

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Also die Datenbankabfrage scheint zu funktionieren, denn da schmiert er nicht ab.
        Bei der Direkteingabe ins phpmyadmin spuckt er mir auch den richtigen Datensatz aus, allerdings würde ich das nicht überbewerten, da ich im phpmyadmin ja nicht mit den Variablen, sondern nur mit den eigentlichen werten arbeiten kann und wenn es an den Variablen hängt ...

        Kommentar


        • #5
          Wenn du testweise den var_dump() einbaust, was kommt denn dabei heraus ?

          Gruss

          tobi [/B]
          NULL

          Kommentar


          • #6
            NULL sagt dir was ? Richtig die var existiert nicht
            Probier das
            PHP-Code:
            [...]
            $res mysql_query($sql) or die(mysql_error());
            while(
            $erg mysql_fetch_assoc($res)){
                
            var_dump($erg);
            }
            [...] 
            Ist es nun nicht mehr NULL ?

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              ja

              Kommentar


              • #8
                ja
                Wenn ich das jetzt richtig interpretiere, dann hat die Var nun einen Inhalt ?

                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  ich mein es ist immernoch NULL

                  falsch ausgedrückt, soweit bin ich schon ...

                  Kommentar


                  • #10
                    Lass Dir doch Spaßeshalber mal das SQL Statement ausgeben.
                    Vielleicht stimmt einfach mit der Parameterübergabe in die Funktion was nicht...
                    www.vino.la
                    www.any-where.de
                    www.gospical.de

                    Kommentar


                    • #11
                      Und diese Zeile
                      PHP-Code:
                      mysql_query($sql) or die(mysql_error()); 
                      gibt keine Fehlermeldung ? Haben alle Vars die du an die Fkt übergibst die erwarteten Werte ?

                      Gruss

                      tobi
                      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                      Kommentar


                      • #12
                        Original geschrieben von jahlives
                        Und diese Zeile
                        PHP-Code:
                        mysql_query($sql) or die(mysql_error()); 
                        gibt keine Fehlermeldung ?

                        tobi
                        nope. Keine Fehler.

                        An die Sache mit der Variablenübergabe hatte ich auch
                        schon gedacht und hab die ganze Sache mal aus der Funktion
                        raus, direkt ins Script geholt:

                        PHP-Code:

                        $username 
                        $_GET['UserName'];
                        $usermail $_GET['UserMail'];
                        $ac_code $_GET['state'];

                        $sql=("SELECT * FROM users 
                                    WHERE UserName='
                        $username
                                    AND Usermail='
                        $usermail
                                    AND state='
                        $ac_code' LIMIT 1");

                        $res mysql_query($sql) OR DIE(mysql_error());

                        while(
                        $erg mysql_fetch_assoc($res)) {
                         echo 
                        $erg;

                        Also die Daten werden aus dem Link geholt und das
                        funktioniert auch, denn mit echo gibt er sie ohne Probleme
                        aus.

                        Der Browser gibt jetzt allerdings lustigerweise nur

                        Array

                        aus

                        Kommentar


                        • #13
                          Du kannst mittels echo nur String printen. Wenn du das bei einem Array oder Objekt versuchst, dann wird nur der Typ geprintet.
                          var_dump($array) zeigt dir den ganzen Inhalt des Arrays an.

                          Gruss

                          tobi
                          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                          Kommentar


                          • #14
                            Ich Hammel ...

                            Original geschrieben von Jule

                            PHP-Code:
                             
                            echo $erg
                            Also diese Zeile noch in diese verändert ...

                            PHP-Code:
                             
                            echo $erg['UserID'] ; 
                            klappt es ... also scheint er die Variablen nicht sauber an die Funktion zu übergeben

                            Warum weiß ich allerdings immer noch nicht

                            Kommentar

                            Lädt...
                            X