Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit Warenkorb (Session/Array)

Einklappen

Neue Werbung 2019

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

  • Problem mit Warenkorb (Session/Array)

    Hallo Ihr.
    Ich habe mit Hilfe von Seesion und einem Array einen Warenkorb gemacht. Die Artikel zu dem Array zuzufügen geht und auch die Ausgabe, nun habe ich aber Probleme, wenn ich im Warenkorb einige Artikel löschen will.

    So kommt der Array zustande (POST-Variablen kommen von einem Formular):
    PHP-Code:
            $id $_POST["id"];
            
    $anzahl $_POST["anzahl"];
            
    $name $_POST["name"];

            
    // Sessionvariablen erstellen
            
    $_SESSION['warenkorb'][] = array('id' => $id'anzahl' => $anzahl); 
    Und hier der Warenkorb:
    PHP-Code:
    <?php
    if (isset($_GET["delete"])) 
          
    $delete $_GET["delete"]; 
        else 
          
    $delete "";

    if(!empty(
    $delete))
    {
        unset(
    $_SESSION["warenkorb"][$delete]);
        die (
    "Artikel erfolgreich gelöscht
    [url='index.php?section=shop&cat=Warenkorb']Zurück[/url]"
    );
    }


        echo
    "
        <font color='000000' face='Arial' size='2'>[b]Ihr Warenkorb:[/b]</font>

        "
    ;

    $i "0";



        while(!empty(
    $_SESSION["warenkorb"][$i])) 
        {
                    
    $artikel_id $_SESSION["warenkorb"]["$i"]["id"];

                    
    $abfrage1 "SELECT * FROM shop_artikel WHERE artikel_id = '$artikel_id'";
                    
    $ergebnis1 mysql_query($abfrage1);
                    while(
    $row mysql_fetch_object($ergebnis1))
                        {
                        
    $a $i+1;


                        echo 
    "[b]$a.[/b] ";
                        echo 
    $_SESSION["warenkorb"]["$i"]["anzahl"];
                        echo 
    " mal $row->artikel_name [url='index.php?section=shop&cat=Warenkorb&delete=$i']löschen[/url]";
                        echo
    "

    "
    ;
                        }
            
    $i++;
        }

        echo
    "

    [url='index.php?section=shop&cat=Delete']Warenkorb löschen[/url]"
    ;
    ?>
    In der While-Schleife wird alles ordentlich ausgegeben. Aber wenn ich z.B. 3 Artikel habe und den 2. löschen will, dann verschwindet auch der 3. Artikel und der 1. Geht garnicht zu löschen. Das Löschen wird in der selben Datei gemacht, wie ihr seht übergebe ich dazu die id ($delete) des Arrays über die URL.[/url]

  • #2
    Hab jetz so geändert wie du gesagt hast, ist aber immernoch dasselbe. Die ID wird auch richtig übergeben.

    Kommentar


    • #3
      Naja aber über die Suchfunktion habe ich herausgefunden, dass man Arrays wie ganz normal behandeln kann in PHP und unset funktionieren sollte. Und wenn ich dem einen Leeren String zuweise dann erscheint der ja immernoch in meinem Warenkorb, oder? Also wird mit aufgezählt.

      Kommentar


      • #4
        Jo, wird er...
        unset funktioniert auch bei $_SESSION

        Stimmen denn die ids?
        Führe mal nach dem Löschen
        PHP-Code:
        $array array_merge($array); 
        durch. Gibt vllt auch noch schönere Möglichkeiten, aber zumindest tut es dass. Es numeriert das Array neu durch (da ja nu in der Mitte ein Eintrag fehlt).

        Kommentar


        • #5
          Zitat von KingCrunch
          Jo, wird er...
          unset funktioniert auch bei $_SESSION

          Stimmen denn die ids?
          Führe mal nach dem Löschen
          PHP-Code:
          $array array_merge($array); 
          durch. Gibt vllt auch noch schönere Möglichkeiten, aber zumindest tut es dass. Es numeriert das Array neu durch (da ja nu in der Mitte ein Eintrag fehlt).
          Ok jetzt geht's erstmal aber den 1. Artikel im Warenkorb kann ich nicht löschen. Der hat die ID 0. Wenn ich da auf löschen klicke, springt er erst garnicht in die IF rein.

          Kommentar


          • #6
            Cool jetzt geht's, ich danke euch.

            Kommentar

            Lädt...
            X