array(session) ausgabe

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

  • array(session) ausgabe

    Wie kann ich folgenden array in seine Einzelheiten über die SESSION ausgeben:

    PHP Code:
    $warenkorb $_SESSION['warenkorb'];
    $b['produktname'] = $row['produktname'];
    $b['produktid'] = $row['id'];
    $b['preis'] = $preis;
    $b['quantity'] = $quantity;

    $warenkorb[] = $b;

    $_SESSION['warenkorb'] = $warenkorb
    Ich hab den array bisher folgendermaßen ausgegeben:

    PHP Code:
    echo "<pre>";
    print_r($_SESSION['warenkorb']);
    echo 
    "</pre><br /><br /><br />"

    Würde es aber gerne so haben

    Produktname: Name1 Preis: Preis1 Anzahl: Anzahl1
    Produktname: Name2 Preis: Preis2 Anzahl: Anzahl2

  • #2
    Woran scheitert es denn? Aus deinem Code könnte man annehmen, dass du weißt was echo macht und wie man auf Elemente eines Arrays zugreift. Das ist auch schon alles, was du dafür brauchst, abgesehen von den entsprechenden HTML-Tags.
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Comment


    • #3
      Also über den Test
      PHP Code:
      print_r($_SESSION['warenkorb']); 
      bekomme ich natürlich alle Datensätze ausgegeben!

      Ich möchte die Daten warsch. über eine Schleife ausgeben:
      Und da hab ich wohl meine Probleme in diesem Fall...

      Bisher habe ich folgendes:

      PHP Code:
      foreach ($warenkorb as $key => $tel) { 
      $produktname[$key] = $tel['produktname']; 
      $quantity[$key] = $tel['quantity'];
      }
                  
      echo 
      $row['produktname']."<br>";
      echo 
      "Anzahl: ".$tel['quantity']."<br>"

      Darüber wird mir immer nur der letzte Datensatz, der in der SESSION gespeichert ist ausgegeben..

      Comment


      • #4
        In der Schleife füllst du die Arrays $produktname und $quantity.
        Und dann gibst du Daten aus $row und $tel aus und wunderst dich?

        Comment


        • #5
          Dein Wortlaut hat mir klar gemacht, das es Unsinn ist!!
          Ich hab jetzt folgendes gemacht:

          PHP Code:
          foreach ($warenkorb as $key => $tel) { 
          $produktname[$key] = $tel['produktname']; 
          $quantity[$key] = $tel['quantity'];
                          
          echo  
          "Produktname: ".$tel['produktname']."<br />";
          echo  
          "Anzahl: ".$tel['quantity']."<br /><br />";

          funktioniert bestens!
          Zum selben Verlauf habe ich ein Schritt vorher folgende Frage.

          Der nachstehende Code steht etwa in der Mitte der Datei:
          PHP Code:
          $sql mysql_query("SELECT * FROM $tabelle WHERE id = '".mysql_escape_string($_REQUEST["id"])."'");

          while(
          $row mysql_fetch_assoc($sql)){
          $ubergabe [] = array(
          'produktid' => $row['id'],
          'produktname'=>$row['produktname']
          );
          echo  
          "Produktid: ".$row['id']."<br />";
          echo  
          "Produktname: ".$row['produktname']."<br /><br />";

          Ich will $row['id'] außerhalb der schleife ausgeben!
          Ich denke $row['id'] muss zur bestehenden array(SESSION) mit übergeben werden..
          mach aber warsch. irgendwas falsch...

          PHP Code:
          if ($_REQUEST["mysubmit"])
              {
                  
          $warenkorb $_SESSION['warenkorb'];
                  
          $b['produktname'] = $row['produktname'];
                  
          $b['produktid'] = $row['id'];
                  
          $b['quantity'] = $quantity;
                  
                  
          $warenkorb[] = $b
                  
                  
          $_SESSION['warenkorb'] = $warenkorb;
                          
                  
          header("Location: xxx.php");
                  die();
                  }
              } 
          Last edited by deimos; 06-03-2011, 18:24.

          Comment


          • #6
            Hat vlt. jemand nochn tip für mich?

            Comment


            • #7
              Wozu jetzt genau, es klang, als funktioniere es?
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Comment


              • #8
                Originally posted by deimos View Post
                Ich will $row['id'] außerhalb der schleife ausgeben!
                Mach dir bitte klar, welche Auswirkung die Nicht-Erfüllung der Laufbedingung der Schleife, welche zu ihrem Abbruch führt, auf $row hat.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Comment


                • #9
                  Versteh ich leider nicht ganz?
                  $row['id'] wird in hier immer korrekt ausgegeben:

                  PHP Code:
                  $sql mysql_query("SELECT * FROM $tabelle WHERE id = '".mysql_escape_string($_REQUEST["id"])."'");

                  while(
                  $row mysql_fetch_assoc($sql)){
                  $ubergabe [] = array(
                  'produktid' => $row['id'],
                  'produktname'=>$row['produktname']
                  );
                  echo  
                  "Produktid: ".$row['id']."<br />";
                  echo  
                  "Produktname: ".$row['produktname']."<br /><br />";

                  Nur wenn ich es mit mysubmit übertragen will..hat er warscheinlich den Inhalt schon verloren?


                  @AmicaNoctis
                  Die Frage zu der Übergabe...

                  Comment


                  • #10
                    Originally posted by deimos View Post
                    Versteh ich leider nicht ganz?
                    Na dann bemüh dich mal, dass du es verstehst ...

                    $row['id'] wird in hier immer korrekt ausgegeben:
                    Da ist es ja auch innerhalb des Anweisungsblocks der Schleife, und nicht dahinter.

                    Nur wenn ich es mit mysubmit übertragen will..hat er warscheinlich den Inhalt schon verloren?
                    Was soll denn jetzt mysubmit sein?

                    Liefere uns doch bitte langsam mal brauchbare Infos, statt immer nur „funzt nich“ und „ich versteh nicht wieso“.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Comment


                    • #11
                      Wie schon beschrieben wird das array "$warenkorb" auf die nächste Seite über die Session mitgenommen, siehe:

                      PHP Code:
                      if ($_REQUEST["mysubmit"])


                      "mysubmit" heißt mein sende Button...vollständig:
                      PHP Code:
                      if ($_REQUEST["mysubmit"])
                          {
                              
                      $warenkorb $_SESSION['warenkorb'];
                              
                      $b['produktname'] = $row['produktname'];
                              
                      $b['produktid'] = $row['id'];
                              
                      $b['quantity'] = $quantity;
                              
                              
                      $warenkorb[] = $b
                              
                              
                      $_SESSION['warenkorb'] = $warenkorb;
                                      
                              
                      header("Location: xxx.php");
                              die();
                          } 
                      Das es innerhalb der Schleife funktioniert ist mir ja klar, deswegen frage ich wie ich es hinbekomme das sie außerhalb auch ausgelesen werden können. Damit ich sie im array "$warenkorb" abspeichern kann und mit der Session transportieren kann...

                      Das mir hier etwas an wissen fehlt..ist ganz klar, deswegen frage ich ja auch nach Tips!


                      Die variable "$quantity" wird bereits erfolgreich meiner SESSION hinzugefügt und kann auch auf der nächsten Seite ausgelesen werden. Liegt daran das die variable "$quantity" aus dem Formular bestimmt wird:
                      PHP Code:
                      <input name="quantity" type="text" value="<? echo $quantity; ?>"/>
                      Dieser Teil funktioniert!!!

                      Das was ich nicht hinbekomme ist das die Daten aus der Datenbank erfolgreich dem array "$warenkorb" hinzugefügt werden.

                      PHP Code:
                      $sql mysql_query("SELECT * FROM $tabelle WHERE id = '".mysql_escape_string($_REQUEST["id"])."'"); 

                      while(
                      $row mysql_fetch_assoc($sql)){ 
                      $ubergabe [] = array( 
                      'produktid' => $row['id'], 
                      'produktname'=>$row['produktname'
                      ); 
                      echo  
                      "Produktid: ".$row['id']."<br />"
                      echo  
                      "Produktname: ".$row['produktname']."<br /><br />"

                      Last edited by deimos; 06-03-2011, 18:33.

                      Comment


                      • #12
                        Ist meine Beschreibung denn nachvollziehbar?

                        Comment


                        • #13
                          Du solltest $row vielleicht vor der schleife definieren, damit es dann auch außerhalb der Schleife verfügbar ist.

                          Comment


                          • #14
                            Wenn ich das ganze außerhalb der Schleife über "print_r($ubergabe);" auslese funktioniert es..
                            //edit...

                            PHP Code:
                                
                                    $sql 
                            mysql_query("SELECT * FROM $tabelle WHERE id = '".mysql_escape_string($_REQUEST["id"])."'"); 
                                        
                                        
                            $row="";
                                        while(
                            $row mysql_fetch_assoc($sql)){ 
                                        
                            $ubergabe[] = array( 
                                            
                            'produktid' => $row['id'], 
                                            
                            'produktname'=>$row['produktname'],
                                            
                            'preis'=>$row['preis']
                                        );                
                                        
                                            echo  
                            "ID: ".$row['id']."<br />";
                                            echo  
                            "Produktname: ".$row['produktname']."<br />";
                                            echo  
                            "Preis: ".$row['preis']." €<br /><br />";
                                        }
                                        

                                    echo 
                            "<pre>";
                                    
                            print_r($ubergabe);
                                    echo 
                            "</pre>"
                            Last edited by deimos; 07-03-2011, 23:21.

                            Comment


                            • #15
                              Gibt es jetzt schon Code ohne Hinweise ob es funktioniert bzw was nicht funktioniert sondern einfach nur Quellcode?

                              Zudem meinte ich das ganze auch nicht so, sondern so:
                              PHP Code:
                              $row mysql_fetch_assoc($sql); 
                              Da ich davon ausgehe das du nur 1 Ergebnis mit deinem SQL Statement erwartest ist die Schleife nicht nötig. Und so kannst du auf $row auch ausserhalb der schleife zugreifen.

                              Comment

                              Working...
                              X