[Variablen] dynamischer Name von Variablen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [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

    Comment


    • #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?

      Comment


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

        Comment


        • #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....

          Comment


          • #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

            Comment


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


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

              Comment


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

                Comment


                • #9
                  ja aber die session gibts doch

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


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

                  Comment


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

                    Comment


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

                      was bedeutet das jetzt?

                      Comment


                      • #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.
                        Last edited by derHund; 04-05-2005, 22:46.
                        Die Zeit hat ihre Kinder längst gefressen

                        Comment


                        • #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.

                          Comment

                          Working...
                          X