Array in Session - bestimmtes Element löschen

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

  • Array in Session - bestimmtes Element löschen

    Hallo,
    ich habe mir einen kleinen Shop mit Warenkorb gebastelt (vorerst nur zum testen)

    Ich lege die Produkte in einem Array in einer Session ab:
    PHP-Code:
    session_start();
    if(!
    $_SESSION['products']){
      
    $_SESSION['products']=array();
    }
    if(
    is_array($_POST['form_products'])) {
      
    $_SESSION['products'] = array_unique(
    array_merge$_SESSION['products']
    ,
    $_POST['form_products']));
    }
    $para $_GET['del'];
    if(
    $para){
    unset(
    $_SESSION['products'][$_GET['del']]);

    Die $_SESSION['products'] lese ich dann per foreach aus.
    Problem: Wenn ich einen Artikel aus dem Array löschen möchte passiert gar nichts. Alle Elemente - auch das was ich löschen wollte - bleiben im Array. Woran liegt das?

  • #2
    hast du dir vor dem unset mal den inhalt mit print_r($_SESSION) angesehen?

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Code:
      Array ( 
      [products] => Array 
      ( 
      [0] => Artikel1 
      [1] => Artikel2 
      [2] => Artikel3 
      [3] => Artikel4 
      ) 
      ) 1
      Es wird genauso gespeichert wie ich es übergebe, deshalb verstehe ich auch nicht warum das entfernen eines Elements nicht funktioniert.

      Kommentar


      • #4
        Re: Array in Session - bestimmtes Element löschen

        PHP-Code:
        unset($_SESSION['products'][intval$para )]); 
        Mal so ausprobiert?

        Kommentar


        • #5
          Re: Re: Array in Session - bestimmtes Element löschen

          Original geschrieben von PHP-Desaster
          PHP-Code:
          unset($_SESSION['products'][intval$para )]); 
          Mal so ausprobiert?
          Funktioniert..... nur mit einem Element. Wenn ich mehr als 1 Element im Array habe, dann lässt sich nur eins löschen und danach keins mehr.

          Kommentar


          • #6
            Wenn ich mehr als 1 Element im Array habe, dann lässt sich nur eins löschen und danach keins mehr.
            also genau das, was du haben wolltest. du musst dein session-array danach neu sortieren. oder habe ich dich falsch verstanden?

            gruß
            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar

            Lädt...
            X