Ankündigung

Einklappen
Keine Ankündigung bisher.

mysql_fetch_row()

Einklappen

Neue Werbung 2019

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

  • mysql_fetch_row()

    also ich hab folgende Abfrage:

    Code:
    $loginx = mysql_query("SELECT name, passwort FROM table WHERE name='$name'") or die(mysql_error());  
    
                while($row = mysql_fetch_row($loginx))
                {
                          echo "blah .. egal";
                 }
    $loginx gibt mir einen Wert aus, mysql_error() gibt nichts aus.

    aber es durchläuft die while schleife nicht! ich sitze jetzt hier 15 minuten und suche den fehler .. kann mir bitte jemand helfen?

  • #2
    naja dann geb ich zur not noch folgende infos: das ganze läuft als function .. ich poste die jetzt mal:

    Code:
    function loginb()
    {
    
    $_SESSION['name']=$_POST["name"];
    $_SESSION['password']=$_POST["password"];
    $name=$_POST["name"];
    
    $loginx = mysql_query("SELECT name, passwort FROM my_table WHERE name='$name'") or die(mysql_error());
                while($row = mysql_fetch_row($loginx))
                {
                    echo  $_SESSION['name'];
                 
                }
    }
    ich weiss sieht ein bissl quer aus .. aber naja chaos is in my head

    Kommentar


    • #3
      1. macht das keinen sinn, in einer while schleife immer wieder ´$_SESSION['name'] auszugeben
      prüf lieber mit mysql_num_rows und gib wenn es 1 ergibt den namen aus
      dann würde ich die werte erst in die sessions speichern wenn die eingaben auf ihre richtigkeit überprüft wurden und ne pw abfrage ist auch nicht drin

      Kommentar


      • #4
        Ok scheinbar habe ich mich falsch ausgedrück:

        Was in der While Schleife steht ist scheissegal, da er sie nicht durchläuft. er gibts nichts aus, egal was dort drinnen steht.

        Das Problem muss in diesem Teil liegen:

        Code:
        $loginx = mysql_query("SELECT name, passwort FROM my_table WHERE name='$name'") or die(mysql_error()); 
                    while($row = mysql_fetch_row($loginx))
        allerdings sehe ich es nicht ... ich verstehe nicht warum er die schleife nicht durchläuft ...

        Kommentar


        • #5
          ok ich poste jezze nochmal was (hab ein bissl was geändert):

          Code:
          function loginb()
          {
          
          $_SESSION['name']=$_POST["name"];
          $_SESSION['password']=$_POST["password"];
          $name=$_POST["name"];
            echo "Session Variablen registriert 
          ";
          $loginx = mysql_query("SELECT name, passwort FROM my_table WHERE name='$name'") or die(mysql_error());
            echo "MySQL Abfrage gestartet 
          ";
              echo "loginx = " . $loginx . "
          ";
                      while($row = mysql_fetch_row($loginx))
                      {
                            echo "While Schleife gestartet 
          ";
                          $_SESSION['name']=$row[0];
                          $_SESSION['passwordx'] = md5($password);
                          if($row[1]==$_SESSION['passwordx'])
                          {
                              echo "<META HTTP-EQUIV='Refresh' CONTENT='1; URL=$PHP_SELF?action=komplett'>";
                              echo "
          
           Einloggen erfolgreich, Sie werden weitergeleitet.";
                          }
                          else
                          echo "
          
           Einloggen fehlgeschlagen";
                          session_unregister(passwordx);
                      }
          }
          so und wenn ich das script ausführe kommt folgendes:

          Session Variablen registriert
          MySQL Abfrage gestartet
          loginx = Resource id #2
          Das deute ich jetzt also (immernoch) so: bis zur Schleife läuft das Script, beim while steigt er aus (warum auch immer ...)

          Kommentar


          • #6
            kann es sein dass er nix ausgibt weil kein passender eintrag in der db steht

            Kommentar


            • #7
              wie meinst du das?

              ich meine die abfrage gibt einen wert zurück (id2) und mit dem sollte ich auch arbeiten können .. nur scheint der wert in der while schleife nicht mehr existent oder so ...

              Kommentar


              • #8
                jeder query gibt einen error(mysql_error()) oder einen wert zurück
                da deine abfrage syntaktisch korrekt ist und ich annehmen dass auch die tabellen und felder existieren gibt der query also einen wert zurück...
                ob datensätze auf die where bedingung zutrafen ist damit noch nicht gesagt
                pack das mal in den phpmyadmin und guck was da passiert
                oder nimm mysql_num_rows()
                Code:
                echo mysql_num_rows($loginx);
                würde mich nicht wundern wenn das script dann 0 ausgibt

                Kommentar


                • #9
                  echo mysql_num_rows($loginx); gibt 0 aus ...

                  das ist komisch ... weil

                  1. die tabelle existiert
                  2. die spalten existieren
                  3. der benutzername existiert


                  woran kann es denn dann liegen?

                  Kommentar


                  • #10
                    vielleicht bearbeitest du die namen bevor du in sie in die db schreibst mit htmlentities oder so
                    sonst kann ich mir es nicht erklären falls du wirklich den richtigen namen eingegeben hast

                    Kommentar


                    • #11
                      ich hab 2 benutzernamen mit passwörtern in der db .. ich kann mich ned ständig bei beiden vertippen ... und bearbeiten tu ich auch nix .. siehst ja den source

                      Kommentar


                      • #12
                        Zitat von Korni
                        und bearbeiten tu ich auch nix .. siehst ja den source
                        ich hab ja auch vom einfügen der namen in die db gesprochen und nicht vom auslesen
                        pack das mal in deinen phpmyadmin
                        musst natürlich dann die variable ersetzen durch einen dieser 2 namen

                        Kommentar


                        • #13
                          Zitat von Korni
                          ich meine die abfrage gibt einen wert zurück (id2) und mit dem sollte ich auch arbeiten können .. nur scheint der wert in der while schleife nicht mehr existent oder so ...
                          Na klar ist der weg.
                          Code:
                          echo "loginx = " . $loginx . "
                          ";
                          An dieser Stelle wird durch das automatische Typecasting aus einem Pointer auf eine Ergebnismenge ein ganz normaler String, mit dem dann mysql_fetch_* nix mehr anfangen kann.

                          Kommentar


                          • #14
                            Zitat von meikel
                            Code:
                            echo "loginx = " . $loginx . "
                            ";
                            An dieser Stelle wird durch das automatische Typecasting aus einem Pointer auf eine Ergebnismenge ein ganz normaler String, mit dem dann mysql_fetch_* nix mehr anfangen kann.
                            wenn das der grund ist, warum bist du dann nedd früher damit gekommen
                            manchmal merke ich dass ich noch einige lücken in meinem bisherigen wissen zu stopfen habe und dies war eine davon :wink:

                            Kommentar


                            • #15
                              nein daran lags ned ...

                              es liegt an den variablen!

                              wenn ich bei

                              Code:
                              $loginx = mysql_query("SELECT name, passwort FROM my_table WHERE name='$name'") or die(mysql_error());
                              das $name durch korni ersetze durchläuft er die schleife, sagt mir nur, dass das pwd falsch ist .. gut jezz weiss ich woran es liegt, nu muss ich nur noch rausfinden wie ich es behebe *g*

                              Kommentar

                              Lädt...
                              X