kostenloser Webspace werbefrei: lima-city


Problem mit mysql_fetch_row

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    daredevil92

    daredevil92 hat kostenlosen Webspace.

    Hallo Leute,

    Ich bin neu hier im Forum und auch mit MySQL noch nicht ganz vertraut, also hoffe ich, dass ich hier keinen Mist poste, aber ich hoffe doch, dass mir hier mit meinem Problem geholfen werden kann.

    Und zwar habe ich ein Skript zum ref="/login" title="Login">login auf einer Website geschrieben:
    $anfrage = "SELECT * FROM Nutzerdata WHERE name = '$user'";
        $anfrage = mysql_query($anfrage);
        
       
        if ($row = mysql_fetch_row($anfrage)) {
          $row = mysql_fetch_row($anfrage);
          
            $username = $row[0];
            $password = $row[1];
            $mail = $row[2];
            $rank = $row[3];
            $activated = $row[4];
            
            
        
          if (isset($password)) {
    ...

    Ganz davon abgesehn, dass es vielleicht namentlich noch etwas verbesserbar ist, habe ich zuvor mysql_fetch_object und $row->name etc stehen haben. Dabei trat jedoch property of non-object -Fehler auf. Jetzt mit mysql_fetch_row gibts keine Meldung mehr, aber es ist immer noch isset($password) = false.

    Einfache Frage: Warum und was kann ich dagegen tun?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. daredevil92 schrieb:
    ... Einfache Frage: Warum und was kann ich dagegen tun?
    probiere mal das aus und dann sehen wir, wie's weiter:
    <?php
    
    error_reporting(E_ALL | E_STRICT);
    
    // connecten musst du da natürlich selber ;)
    
    $sql = "SELECT * FROM Nutzerdata WHERE name='$user'";
    $res = mysql_query($sql);
    while($row = mysql_fetch_assoc($res)) {
      foreach($row as $key => $value) {
        echo "$key :: $value<br />";
      }
    }


    Beitrag zuletzt geändert: 22.10.2011 1:08:29 von hemiolos
  4. Autor dieses Themas

    daredevil92

    daredevil92 hat kostenlosen Webspace.

    Danke schonmal für die Antwort. Das ganze gibt schonmal was ordentliches zurück:
    name :: abc<br />password :: b2157e7b2ae716a747597717f1efb7a0<br />mail :: *********@gmx.de<br />rank :: 1<br />activated :: 0<br />


    Jedoch möchte ich die einzelnen Werte in die entsprechenden Variablen übergeben (also $username, $password usw).
    Erhalte ich die jetzt mir $username = $key['username'] ?

    P.S.: In der Datenbank ist name als primary gesetzt, daher kann die anfrage nur eine Zeile liefern, brauche ich das foreach dann überhaupt?
  5. daredevil92 schrieb:
    Danke schonmal für die Antwort. Das ganze gibt schonmal was ordentliches zurück:
    name :: abc<br />password :: b2157e7b2ae716a747597717f1efb7a0<br />mail :: *********@gmx.de<br />rank :: 1<br />activated :: 0<br />


    Jedoch möchte ich die einzelnen Werte in die entsprechenden Variablen übergeben (also $username, $password usw).
    Erhalte ich die jetzt mir $username = $key['username'] ?

    P.S.: In der Datenbank ist name als primary gesetzt, daher kann die anfrage nur eine Zeile liefern, brauche ich das foreach dann überhaupt?


    Guck bei mysql-fetch-assoc und foreach nach um es zu verstehen.

    while($row = mysql_fetch_assoc($res)) {
      $username = $row['username']
       $password= $row['password']
      //USW...
    }



    Beitrag zuletzt geändert: 22.10.2011 21:38:24 von simuliertes
  6. daredevil92 schrieb:
    ... die einzelnen Werte in die entsprechenden Variablen übergeben (also $username, $password usw) ...
    wie @simuliertes es zeigt, oder
    while($row = mysql_fetch_row($res)) {
      list($username, $password, ...) = $row;
    }
    (also vorsicht! wieder 'mysql_fetch_row()')
  7. simuliertes schrieb:
    while($row = mysql_fetch_assoc($res)) {
      $username = $row['username']
       $password= $row['password']
      //USW...
    }


    das würde wegen der fehlenden Semikolons nichts ergebenaußer Fehler; also nicht vergessen ;-)
    und wenn sie gesetzt sind und mehrere "user" in der Datenbank sind was würde wohl dabei rum kommen ?

    Angenommen dies ist Deine Tabelle
    CREATE TABLE `users` (
      `ID` int(12) NOT NULL AUTO_INCREMENT,
      `name` varchar(32) NOT NULL,
      `pass` varchar(32) NOT NULL,
      `mail` varchar(50) NOT NULL,
      `ranking` int(12) NOT NULL,
      `active` int(5) NOT NULL,
      PRIMARY KEY (`ID`)
    )


    So sprichst du deine Tabelle an
    $sql = mysql_query("SELECT * FROM users  WHERE name= '$user'");
    $res = mysql_fetch_assoc($sql);

    So kannst Du Deine Zuweisungen machen (beachte die Schlüsselwerte der variable $res)
    $id = $res['ID'];
    $username = $res['name'];
    $password = $res['pass'];
    $email = $res['mail'];
    $rank = $res['ranking'];
    $activated = $res['active'];


    wie du diese Daten verarbeitest ist völlig wurst, solltest aber überlegen die Daten ggf. per ID auszulesen, weiß ja nicht was genau du vor hast
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!