Mehrere Datensätze in einer Session speichern

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

  • Mehrere Datensätze in einer Session speichern

    Hallo,

    wie kann ich mehrere Datensätze in einer Session speichern?
    Hintergrund dazu ist, dass das Endergebnis z.B. ein Angebot geben soll. Den Empfänger in die Session zu bekommen war noch nicht so das Problem

    PHP-Code:
    if (isset ($_POST['übernehmen']) && $_POST['übernehmen'] == 'Übernehmen'
    {
     
    $_SESSION['firma'] = $_POST['firma'];
     
    $_SESSION['vorname'] = $_POST['vorname'];
     
    $_SESSION['nachname'] = $_POST['nachname'];
     
    $_SESSION['strasse'] = $_POST['strasse'];
     
    $_SESSION['nr'] = $_POST['nr'];
     
    $_SESSION['plz'] = $_POST['plz'];
     
    $_SESSION['ort'] = $_POST['ort'];

    Nun werden auf der nachfolgenden Seite die Angebotspositionen zur Auswahl angeboten.

    PHP-Code:
    while($row mysql_fetch_assoc($result))
    {
     echo 
    "<form action='index.php?navi=" $_GET['navi'] . "&menu=neuangebotpositionen' method='post'&nbsp;";
     echo 
    "<input name='id' type='text' value='" $row['id'] . "'  size='3' readonly>&nbsp;";
     echo 
    "<input name='firma' type='text' value='" $row['lieferant'] . "'  readonly>&nbsp;";
     echo 
    "<input name='vorname' type='text' value='" $row['anr_extern'] . "' size='10' readonly>&nbsp;";
     echo 
    "<input name='nachname' type='text' value='" $row['anr_intern'] . "'  readonly>&nbsp;";
     echo 
    "<input name='strasse' type='text' value='" $row['nettoek']."' size='7' readonly>&nbsp;";
     echo 
    "<input name='strasse' type='text' value='" $row['nettovk'] . "' size='7' readonly>&nbsp;";
     echo 
    "<input name='strasse' type='text' value='" $row['bruttoek'] . "' size='7' readonly>&nbsp;";
     echo 
    "<input name='strasse' type='text' value='" $row['bruttovk'] . "' size='7' readonly>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
     echo 
    "<input type='submit' name='übernehmen' value='Übernehmen'><br>";
     echo 
    "</form>";
     echo 
    "<br>";

    Bei jeden Klick auf übernehmen soll der betreffende Satz mit in der Session gespeichert werden. Frage ist, wie macht man das???
    Ein Arrray in der Session ablegen? Nur wie kriege ich die Daten rein und wieder raus?

    Vielen Dank für eure Hilfe
    Zuletzt geändert von fritzje610; 03.04.2008, 13:40.
    Gruß

    Michael

  • #2
    ähm

    PHP-Code:
    $_SESSION[0][datensatz]="blah";
    $_SESSION[0][datensatz1]="blah";
    $_SESSION[0][datensatz2]="blah";


    $_SESSION[1][datensatz]="blah";
    $_SESSION[1][datensatz1]="blah";
    $_SESSION[1][datensatz2]="blah";

    usw
    Bitte Beachten.
    Foren-Regeln
    Danke

    Kommentar


    • #3
      Das heisst in Session[0] steht ein Datz und in Session[1] der nächste ?
      Wie unterscheide dann wann ein Satz zu Ende ist under neue beginnt?Dementsprechend muss ja die erste Dimesion hochesetzt werden? Wie baue ich den übernehmen-Button da ein?

      Momentan stehe ich wie der Ochs vorm Berge.
      Gruß

      Michael

      Kommentar


      • #4
        Original geschrieben von fritzje610
        Das heisst in Session[0] steht ein Datz und in Session[1] der nächste ?
        Wie unterscheide dann wann ein Satz zu Ende ist under neue beginnt?
        Du hast dir die Antwort selbst gegeben

        Kommentar


        • #5
          Original geschrieben von fritzje610

          Momentan stehe ich wie der Ochs vorm Berge.
          entweder mit

          PHP-Code:
          for($i=0;$i<$irgendwas;$i++)
          {
          echo 
          $_SESSION[$i]['blah'];

          oder eleganter

          PHP-Code:
          foreach($_SESSION as $Key=>$Value)
          {
          echo 
          $Value['blah'];

          wie genau du das machst ist deine sache
          Bitte Beachten.
          Foren-Regeln
          Danke

          Kommentar


          • #6
            Das:

            PHP-Code:
            while($row mysql_fetch_assoc($result))
            {
              echo 
            "<form action='index.php?navi=" $_GET['navi'] . "&menu=neuangebotpositionen' method='post'&nbsp;";
              echo 
            "<input name='id' type='text' value='" $row['id'] . "' size='3' readonly>&nbsp;";
              echo 
            "<input name='firma' type='text' value='" $row['lieferant'] . "'  readonly>&nbsp;";
              echo 
            "<input name='anr_extern' type='text' value='" $row['anr_extern'] . "' size='10' readonly>&nbsp;";
              echo 
            "<input name='anr_intern' type='text' value='" $row['anr_intern'] . "'  readonly>&nbsp;";
              echo 
            "<input name='bruttoek' type='text' value='" $row['bruttoek'] . "' size='7' readonly>&nbsp;";
              echo 
            "<input name='bruttovk' type='text' value='" $row['bruttovk'] . "' size='7' readonly>&nbsp;";
              echo 
            "<input name='beschreibung' type='hidden' value='" $row['beschreibung'] . "'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
              echo 
            "<input type='submit' name='übernehmen' value='Übernehmen'><br>";
              echo 
            "</form>";
              echo 
            "<br>";


            Soll da rein, wenn ich den Button übernehmen gedrückt habe:

            PHP-Code:
            foreach($_SESSION as $Key=>$Value)
            {
            echo 
            $Value['blah'];


            Und ich habe nicht die geringste Idee wie? Ich verstehs nicht. Völlige Blockade.
            Gruß

            Michael

            Kommentar


            • #7
              für jeden datensatz ein eigens Formular?
              Bitte Beachten.
              Foren-Regeln
              Danke

              Kommentar


              • #8
                Nein.
                In der while-Schleife werden die möglichen Datensätze angezeigt und hinter jedem der Button "übernehmen". Beim Klick auf diesen Button sollen dann die sieben Felder in die Session übernommen werden. Wird noch ein Datensatz "übernommen", muss dieser auch in die Session usw.

                Später brauche ich die dann um ein Gesamtformular zu erstellen.

                Problem, wie tun ?
                Gruß

                Michael

                Kommentar


                • #9
                  aber schön

                  von mir aus.
                  PHP-Code:
                  session_start();
                  if(isset(
                  $_POST['daten']))
                  {
                      
                  $anzahl=0;
                      if(isset(
                  $_SESSION['daten']))
                      {
                          
                  $anzahl=count($_SESSION['daten']);
                      }
                      
                  $_SESSION['daten'][$anzahl]['wert']=$_POST['daten'];
                  }

                  echo 
                  "<form method='post'>
                      <input type='text' name='daten' value='1' />
                      <input type='submit' />
                      </form>"
                  ;
                  if(isset(
                  $_SESSION['daten']))
                  {
                      
                  var_dump($_SESSION);

                  das dürfte dir doch wohl hoffentlich zeigen was du tun must.
                  Bitte Beachten.
                  Foren-Regeln
                  Danke

                  Kommentar


                  • #10
                    So wirklich sehe ich es noch nicht. Kannst Du mir das erklären , was da gemacht wird??? Ich hab damit mal gebastelt und es kommt auch was in der Session an. Aber was warum wo wo und wie ankommt ist mir nicht ganz klar. Wo kommt ['wert'] her, was soll da drin stehen?


                    PHP-Code:
                    while($row mysql_fetch_assoc($result))
                    {
                      echo 
                    "<form action='index.php?navi=" $_GET['navi'] . "&menu=neuangebotpositionen' method='post'&nbsp;";
                      echo 
                    "<input name='id' type='text' value='" $row['id'] . "' size='3' readonly>&nbsp;";
                      echo 
                    "<input name='lieferant' type='text' value='" $row['lieferant'] . "'  readonly>&nbsp;";
                      echo 
                    "<input name='anr_extern' type='text' value='" $row['anr_extern'] . "' size='10' readonly>&nbsp;";
                      echo 
                    "<input name='anr_intern' type='text' value='" $row['anr_intern'] . "'  readonly>&nbsp;";
                      echo 
                    "<input name='bruttoek' type='text' value='" $row['bruttoek'] . "' size='7' readonly>&nbsp;";
                      echo 
                    "<input name='bruttovk' type='text' value='" $row['bruttovk'] . "' size='7' readonly>&nbsp;";
                      echo 
                    "<input name='beschreibung' type='hidden' value='" $row['beschreibung'] . "'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
                      echo 
                    "<input type='submit' name='übernehmen' value='Übernehmen'><br>";
                      echo 
                    "</form>";
                      echo 
                    "<br>";
                    }
                    echo 
                    "</div>";

                    if (isset (
                    $_POST['übernehmen']) && $_POST['übernehmen'] == 'Übernehmen')
                    {
                        
                    $anzahl=0;
                        if(isset(
                    $_SESSION['daten']))
                        {
                            
                    $anzahl=count($_SESSION['daten']);
                        }
                        
                    $_SESSION['anr_extern'][$anzahl]['wert'] = $_POST['anr_extern'];
                        
                    $_SESSION['anr_intern'][$anzahl]['wert'] = $_POST['anr_intern'];
                        
                    $_SESSION['bruttoek'][$anzahl]['wert'] = $_POST['bruttoek'];
                        
                    $_SESSION['bruttovk'][$anzahl]['wert'] = $_POST['bruttovk'];
                        
                    $_SESSION['beschreibung'][$anzahl]['wert'] = $_POST['beschreibung'];
                    }

                    if(isset(
                    $_SESSION['daten']))
                    {
                        
                    print_r($_SESSION);

                    Gruß

                    Michael

                    Kommentar


                    • #11
                      PHP-Code:
                      $_SESSION['daten'][$anzahl]['anr_extern'] = $_POST['anr_extern'];
                      $_SESSION['daten'][$anzahl]['anr_intern'] = $_POST['anr_intern'];
                      $_SESSION['daten'][$anzahl]['bruttoek'] = $_POST['bruttoek'];
                      $_SESSION['daten'][$anzahl]['bruttovk'] = $_POST['bruttovk'];
                      $_SESSION['daten'][$anzahl]['beschreibung'] = $_POST['beschreibung'];
                      }

                      if(isset(
                      $_SESSION['daten']))
                      {
                          
                      print_r($_SESSION);

                      sorum wird ein schuh draus

                      EDIT:

                      erklär ich es dir mal



                      PHP-Code:
                      session_start();
                      if(isset(
                      $_POST['daten']))
                      {
                          
                      $anzahl=0;
                          if(isset(
                      $_SESSION['daten']))
                          {
                              
                      $anzahl=count($_SESSION['daten']);
                          }
                          
                      $_SESSION['daten'][$anzahl]['wert']=$_POST['daten'];
                      }

                      echo 
                      "<form method='post'>
                          <input type='text' name='daten' value='1' />
                          <input type='submit' />
                          </form>"
                      ;
                      if(isset(
                      $_SESSION['daten']))
                      {
                          
                      var_dump($_SESSION);

                      in diesem kleinen Beispiel.
                      wird eine session erzeugt. da beim ersten aufruf des formulares die $_SESSION['daten'] noch nicht existent ist.

                      bleibt $anzahl auf 0
                      danach wird als auf
                      $_SESSION['daten'][0]['wert'] der wert 1 abgespeichert.

                      wenn man jetzt wieder auf senden klickt passiert nun folgendes.
                      $_SESSION['daten'] ist nun existent.
                      dadurch wird der count ausgelöst und $anzahl geht von null auf 1 weil ein eintrag vorhanden ist.
                      nämlich $_SESSION['daten'][0] . wieviele unterelemente [0] hat spielt da keine rolle
                      somit ist der nähste klick
                      $_SESSION['daten'][1]['wert']=1;

                      und so geht das weiter je öfter du das formular absendest desto mehr ebenen bekommt $_SESSION['daten'].

                      was man am var_dump($_SESSION) sehr gut sehen kann.
                      Zuletzt geändert von Wyveres; 03.04.2008, 16:30.
                      Bitte Beachten.
                      Foren-Regeln
                      Danke

                      Kommentar

                      Lädt...
                      X