[Variablen] dynamischer Name von Variablen

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

  • [Variablen] dynamischer Name von Variablen

    Hi,

    Ich hoffe mal, dass mir jemand helfen kann.
    Habe ein kleines Problem mit meinen $_Session-Variablen.

    Kann man die Bezeichnung der irgendwie dynamisch beeinflussen?

    xxx soll durch die jeweilige ausgabe aus der MySQL-Datenbank ersetzt werden:
    PHP-Code:
    $_SESSION['xxx'
    Hatte zuerst gehofft, dass es so geht:

    PHP-Code:
    $_SESSION['".$result['name']."'
    Weiß jemand eine Lösung?

  • #2
    innerhalb der [] (von $_SESSION[]) sollte ein String hinein, wie du den da hinbringst (['string'] oder [$varmitString]) sollte eigentlich egal sein...

    jedoch bekommst du auch nur einen wert heraus wenn $_SESSION[] auch vorher mit dem feld versehen wurde das du aufrufen willst

    Kommentar


    • #3
      Habs hinbekommen,
      teilweise jedenfalls :/


      Ich verstehe allerdings noch nicht ganz wieso es nicht funktioniert:

      Seite a:
      PHP-Code:
      $_SESSION[$row['id']] = "test"
      im Beispiel hat die id den Wert "31". Ich kann im gleichen Dokument
      abrufen:
      PHP-Code:
      echo $_SESSION[$row['id']];
      echo 
      $_SESSION[31]; 
      ...beides erzeut: "test"

      Seite b:
      Ich rufe die id aus der datenbank ab allerdings gibt es keine ausgabe :/
      PHP-Code:
      echo $_SESSION[$result['id']]; 
      Die id ist wieder 31...

      woran liegt das?

      Kommentar


      • #4
        wird auf seite b auch eine session gestartet, und zwar die in die auch auf seite a die variable gesetzt hat...

        Kommentar


        • #5
          Seite a und Seite b befinden sich in einem PHP-Dokument.

          if($_GET['seite']==a){
          //Seite a
          }

          if($_GET['seite']==b){
          //Seite b
          }


          Das PHP-Dokument ist in meine index.php included... und dort wird eine Session gestartet....

          Kommentar


          • #6
            woran liegt das?
            vergleichst du hier äpfel und birnen? zumindest deinen ausführungen zu folge.

            setz dein error_reporting auf E_ALL. mehr gibt es nicht zu sagen.
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar


            • #7
              Notice: Undefined index: 31 in
              xxx\datei.php on line 28


              Line 28:
              echo $_SESSION[$result3['tid']];

              Kommentar


              • #8
                dann is ja wohl klar an was es liegt
                $_SESSION[31] existiert nicht, darum kann es in zeile 28 nicht ausgegeben werden

                Kommentar


                • #9
                  ja aber die session gibts doch

                  $_SESSION[$row['id']] = "hallo";


                  echo $_SESSION[$row['id']];
                  echo $_SESSION[31];
                  führt zu "hallo"

                  Kommentar


                  • #10
                    PHP-Code:
                    print_r($result3); 
                    Die Zeit hat ihre Kinder längst gefressen

                    Kommentar


                    • #11
                      Ausgabe: Array ( [0] => 31 [id] => 31 )

                      was bedeutet das jetzt?

                      Kommentar


                      • #12
                        print_r gibt dir den inhalt eines arrays aus.

                        laß dir bitte bei deinem konstrukten die inhalte ausgeben, und schau, wo du den undefinierten index ansprichst, entferne das

                        mach bitte mal ein print_r auf die session.

                        PHP-Code:
                        echo '<pre>'.print_r($_SESSIONTRUE).'</pre>'
                        btw: $result3 hat keinen index tid?

                        edit: zeige bitte aktuellen, vollständigen (relevanten) code, und zugehörige variablen-inhalte. so buchstückhaftes aus-der-nase-ziehen ist im moment nicht so mein ding.
                        Zuletzt geändert von derHund; 04.05.2005, 23:46.
                        Die Zeit hat ihre Kinder längst gefressen

                        Kommentar


                        • #13
                          Der Fehler liegt wohl beim erzeugen der Session-Variable, denn in dem Array ist Sie nicht drin:

                          Array
                          (
                          [user] => julian
                          [lastlogin] => 2005-05-04 18:20:36
                          )

                          Forum-Code:

                          Ausgabe der Forenbeiträge:

                          PHP-Code:
                              $res =  mysql_query("SELECT * FROM beitraege WHERE fid=".$_GET['fid']." AND tid=".$_GET['tid']." ORDER BY id ASC");

                             while(
                          $row=mysql_fetch_array($res)) {
                               
                          $_SESSION[$row['tid']] = "gelesen";   //Session wird gesetzt
                               //Ausgabe
                              

                          Ausgabe der Themen:

                          PHP-Code:
                              query = @mysql_query("SELECT tid FROM beitraege WHERE tid ='".$row['id']."'");
                              
                          $result = @mysql_fetch_array($query);
                              echo 
                          $_SESSION[$result['tid']];  //Session wird ausgegeben 
                          Anstelle der Ausgabe möchte ich die Variable halt zu dem Vergleich gelesen/ungelesen verwenden, aber die Variable existiert ja anscheinend nicht.

                          Kommentar

                          Lädt...
                          X