Mehrdim. Array - Artikel neu indexieren

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

  • Mehrdim. Array - Artikel neu indexieren

    Hallo zusammen

    ich habe mich nun ein paar Tage mit meinem Warenkorb rumgeschlagen und habs nicht ganz fertig gebracht, naja immerhin fast

    Also eigentlich funktioniert alles ausser:

    Artikel 123 liegt 1x im Korb

    Kunde wählt ein paar andere

    dann

    artikel 123 1x
    artikel abc 1x
    artikel tes 1x

    dann kann er 123 löschen - alles top.

    Nun klickt er aus welchem Grund nochmal artikel abc zum Warenkorb hinzufügen an - danach machts bei mir: Löschen artikel abc raus, sichere vorher die Anzahl und addiere sie.

    Dieser Vorgang geht ebenfalls - nur, das Problem ist das die anderen Einträge aus dem Array verschwinden was eher weniger gut ist

    Ich weiss auch wo der Fehler ist:

    Hier mal wichtiger Code:

    PHP-Code:
    $datenarr $_SESSION['warenkorb']; 
        foreach (
    $datenarr as $werte
        {
            
    $eintrag $werte['articleId'];
            if (
    $art == $eintrag)
            {
                
    out();
            }
        }
        
    $warenkorb $_SESSION['warenkorb'];
        
    $b['name'] = $name
        
    $b['articleId'] = $art
        
    $b['anzahl'] = $amm;
        
    $b['username'] = $usr
        
    $b['price'] = $preis
        
    $warenkorb[] = $b
        
    $_SESSION['warenkorb'] = $warenkorb
        
    header('location: index.php?kat=cart&ub='); 
    Hier wird nix gemacht ausser einen Artikel falls er nicht vorkommt in die Session zu jagen.

    Nun wirds komplexer:

    PHP-Code:
    function out()
    {
        
    $amm $_GET["amm"];
        
    $usr $_SESSION['username'];
        
    $arti $_GET["art"];
        
    $datenarr $_SESSION['warenkorb'];
        
    $index count ($datenarr); 
        
    $index $index 30;
        
    /*ACHTUNG WARENKORB KANN MOMENTAN NUR ETWA 32 Einträge aufnehmen /*
        /* Falls Array 4 Einträge (0-4) und danach 2 gelöscht zählt das array den index nur bis  (da array noch 2 einträge) - die letzten 2 einträgen bleiben weg*/
        
    for($dim 0$dim $index$dim++)
        {
            if (isset(
    $datenarr[$dim]))
            {
                     
    $krb $datenarr[$dim];
                If ( 
    in_array($arti$krb) ) 
                {
                    
    /*Falls der Artikel im Warenkorb ist - löschen und neu anlegen mit neuer Anzahl + Alter */
                    
    $abfrage "SELECT * FROM products WHERE nummer = ".$_GET['art'];
                    
    $resultat mysql_query($abfrage)
                    OR die(
    "Error: $abfrage <br>".mysql_error());
                    while(
    $row mysql_fetch_object($resultat)) 
                    { 
                        
    $name $row->name;
                        
    $preis $row->preis;
                        
    $preis $preis $amm;
                        
    $lager $row->lagerbestand;
                    }
                    
    $oldanz $datenarr[$dim]['anzahl'];
                    unset(
    $datenarr[$dim]);     
                    
    $b['name'] = $name
                    
    $b['articleId'] = $arti
                    
    $b['anzahl'] = $amm $oldanz;
                    
    $b['username'] = $usr
                    
    $b['price'] = $preis
                    
    $newkrb[] = $b
                    
    $_SESSION['warenkorb'] = $newkrb
                }
                else
                {
                    
    /*echo "gesucht nach".$arti;
                    echo $datenarr[$dim]['price'];*/
                
    }
            }
            else
            {
                
    $do "nothing";
            }

        }
        exit();

    Das Problem liegt 100% beim [COLOR="Red"]$_SESSION['warenkorb'] = $newkrb; [/COLOR]

    An diesem Punkt wird nur noch der neue Artikel in die Session gejagt, nun verschwinden die andern.

    Ich seh momentan echt den Wald vor lauter Bäumen nicht mehr.

    Kann mir bitte bitte bitte jemand mitteilen wie ich den Warenkorb dazu bringe sich so zu verhalten:

    Falls artikel drin
    Speichere Anzahl - lösche Artikel (geht schon wie gesagt)
    Jage neuen Artikel in die Session und behalte alle andern...

    Da ist der Wurm...

    Herzlichen Dank

    Broget

  • #2
    Sucht man Stunden und 5 Minuten nach dem Thread findet man es:
    $_SESSION['warenkorb'] = array_merge($datenarr, $newkrb);

    Zum Glück hatte ich merge noch im hinterkopf - mann ist das Geil

    /CLOSED

    Kommentar

    Lädt...
    X