kostenloser Webspace werbefrei: lima-city


PHP Variable in while-Schleife

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    thwbm

    thwbm hat kostenlosen Webspace.

    Hallo,
    ich habe ein Problem und hoffe, dass mir hier jemand helfen kann. Hier also mein Problem/meine Frage:
    Ich habe eine verbindung zu einer MySQL Datenbank, die wie folgt aussieht:
    <?php
      $id = "ABC";
      $abfrage = "SELLECT * FROM tabellenname WHERE BenutzerID = '$BenutzerID'";
      //die BenutzerID ist über die SESSION definiert
      $ergebnis = mysql_query($abfrage);
      while($row = mysql_fetch_object($ergebnis))
        {
          //Hier weis ich nicht, was hier hin muss.
          //Ich habe es schon so versucht:
          $id2 = $row->"$id";
          //Aber das funktioniert nicht.
          //Wie mache ich es jetzt, dass der Spaltenname =  $id ist?
          //Auserdem würde ich noch gerne wissen, ob und wenn ja wie man eine if abfrage in der while Schleife machen kann.
        }
    ?>

    Danke im Voraus für alle Antworten,
    THWBM

    Beitrag zuletzt geändert: 6.9.2012 17:30:18 von thwbm
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Benutze mysql_fetch_array. Das gibt ein Assoziatives Array zurück. Dann kannst einfach $id als Key nehmen und kriegst das gewünschte Ergebnis, insofern $id existiert. Aber du kansnt ja gegen NULL testen.


    PS:
    Zur IF... Uhm ... wie außerhalb einer While schleife auch.

    while(true) {
        if ($foo == "bar") {
            echo "Hallo, mein foo ist bar!";
        } 
    }


    Beitrag zuletzt geändert: 6.9.2012 17:47:04 von adrians
  4. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    adrians schrieb:
    Benutze mysql_fetch_array. Das gibt ein Assoziatives Array zurück.
    Oder benutze
    mysql_fetch_object()
    richtig...
    <?php
      $id = "ABC";
      $abfrage = "SELECT * FROM tabellenname WHERE BenutzerID = '$BenutzerID'";
      $ergebnis = mysql_query($abfrage);
      while($row = mysql_fetch_object($ergebnis)) {
          $id2 = $row->{$id};
          // jetzt steht in $id2 der Wert der Spalte "$id"
      }
    ?>


    // EDIT: ungefär so hat es adrians gemeint:
    <?php
      $id = "ABC";
      $abfrage = "SELECT * FROM tabellenname WHERE BenutzerID = '$BenutzerID'";
      $ergebnis = mysql_query($abfrage);
      while($row = mysql_fetch_assoc($ergebnis)) {
          $id2 = $row[$id];
      }
    ?>


    Beitrag zuletzt geändert: 10.9.2012 13:45:35 von hackyourlife
  5. Autor dieses Themas

    thwbm

    thwbm hat kostenlosen Webspace.

    Erstmal danke an euch beide,
    1. an adrians:
    Ich glaube, dass mir die Antwort von hackyourlife mehr Weiterhilft in Sachen "mysql_fetch_object", aber dake für die Info zur If abfrage.
    2. an hackyourlife:
    Ich glaube, damit kann ich was anfangen, danke!
  6. zur kleinen erklärung...

    mit -> sprichst du objekte an

    dies geht natürlich nicht wenn du keine erzeugst!

    über $row = mysql_fetch_assoc() ist $row ein array.. du kannst auf die db spalten mit $row[] zugreifen. über objekt mit ->

    generell weiß ich nicht wie der stand hier auf dem server ist aber ich rate dir ernsthaft zu mysqli oder am liebsten zu PDO ....

    btw wird das hier unterstützt?

    (auch wenns jetzt noch nicht so ist, weiß ich nicht genau was du damit vorhast, falls die "SESSION ID" aus nem cookie oder per GET übergeben wird, ist dein script schneller geknackt als die schale einer nuss ;)

    Beitrag zuletzt geändert: 9.9.2012 17:59:23 von dishonored
  7. b**********m

    Also ich vermute mal das soll ein Login sein also müsstest du als nächstes doch einfach die Sessionvariablen setzen, oder?

    $ergebnis["id"] = $_SESSION["user_id"];
    $ergebnis["username"] = $_SESSION["username"];


    PS: Vielleicht liegts auch daran das du SELLECT mit 2 L geschrieben hast?

    Beitrag zuletzt geändert: 10.9.2012 12:33:48 von buergerforum
  8. gute Frage, was will der TE machen ... ?!?

    a) ... einen User-Login ... Prüfen ob ID existiert und ob das Passwort richtig ist
    oder
    b) ... alle Daten ausgeben ... die einem User (Autor) zugeordnet sind (z.B. Artikel, Kommentare, ... )

    zu a)
    <?php 
    
      $user_id = $_SESSION["BenutzerID"];
      $user_pw = $_SESSION["Password"];
    
      $user_id = mysql_real_escape_string($user_id); 
      $user_pw = mysql_real_escape_string($user_pw); 
    
      $abfrage = "SELECT * FROM usertable WHERE id = '$user_id ' LIMIT 1";
      $ergebnis = mysql_query($abfrage);
      $num_rows = mysql_num_rows($ergebnis);
    
      if ($num_rows == 0) { 
          echo "<br />Keine Daten zu User mit dieser ID gefunden. "\n";    
      }
      else { 
    
      $row = mysql_fetch_object($ergebnis));   // --- wegen LIMIT 1 ist hier keine while-Schleife notwendig
    
           if ($row->pass == $user_pw) { 
              echo "<br />OK ... Login erfolgreich. "\n";    
             }
           else { 
              echo "<br />Fehler ... Passwort ist nicht richtig. "\n";    
             } 
    
      }
    
    ?>


    zu b)
    <?php
      $user_id = $_SESSION["BenutzerID"];
      $user_id = mysql_real_escape_string($user_id); 
    
      $abfrage = "SELECT * FROM tabellenname WHERE id = '$user_id '";
      $ergebnis = mysql_query($abfrage);
      $num_rows = mysql_num_rows($ergebnis);
    
      if ($num_rows == 0) { 
          echo "<br />Keine Daten zu User mit dieser ID gefunden. "\n";    
      }
      else { 
    
      $row = mysql_fetch_object($ergebnis))
      
      $n=1; 
      while($row = mysql_fetch_object($ergebnis))
        {
            echo "<p>--------- Ergebnis Nr: ".$n." ---------\n";  
            echo "<br />Von User-ID: "  . $row->id . "\n";    
            echo "<br />Artikel-Typ: "  . $row->post_type . "\n"; 
            echo "<br />Artikel-Text: " . $row->text . "\n"; 
            echo "<br />Erstellt am: "  . $row->datum . "\n"; 
            echo "</p>\n";  
        $n++; 
        }
    
      }
    
    ?>


    ... oder wie oder was ?!

    Beitrag zuletzt geändert: 10.9.2012 13:08:07 von wguide
  9. 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!