array(session) ausgabe

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

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

    Kommentar


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

      Kommentar


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

        Kommentar


        • #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();
                  }
              } 
          Zuletzt geändert von deimos; 06.03.2011, 18:24.

          Kommentar


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

            Kommentar


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

              Kommentar


              • #8
                Zitat von deimos Beitrag anzeigen
                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.

                Kommentar


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

                  Kommentar


                  • #10
                    Zitat von deimos Beitrag anzeigen
                    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.

                    Kommentar


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

                      Zuletzt geändert von deimos; 06.03.2011, 18:33.

                      Kommentar


                      • #12
                        Ist meine Beschreibung denn nachvollziehbar?

                        Kommentar


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

                          Kommentar


                          • #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>"
                            Zuletzt geändert von deimos; 07.03.2011, 23:21.

                            Kommentar


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

                              Kommentar

                              Lädt...
                              X