08. oktober 2006 - 18:23Der er
8 kommentarer og 1 løsning
opdaterer værdier i et array
Jeg er sikker på det her er pinligt enkelt...
Jeg har et array der består af disse: $_SESSION['kurv']['antal'] $_SESSION['kurv']['varenummer'] $_SESSION['kurv']['vare'] $_SESSION['kurv']['pris']
Nu er det sådan, at en kunde skal have muligheden for at øge antallet af en given vare i kurven. Med andre ord, så skal jeg finde ud af at lægge en til eller trække en fra $_SESSION['kurv']['antal'], uden at lave geed i resten af arrayet. Jeg har mlavet følgende:
$i er indexet! På den måde rettes den rette værdi i arrayet. Det er IKKE den der skaber kaos. Der er jo flere varer i kurven (måske), og php skal vide, hvilken det er der skal opdateres. Det er det $i skal bruges til - skulle jeg mene.
fixxxer>> Her den stump hvor jeg fylder i kurven. $varer = array( 'varenummer' => $_GET['varenummer'], 'vare' => $_GET['vare'], 'pris' => $_GET['pris'], 'antal' => 1 ); //laver et array med vareoplysninger. $_SESSION['kurv'][]=$varer; //sætter varen ind i slutningen af arrayet.
Når jeg udskriver kurven gør jeg det således: while $i < count($_SESSION['kurv'] { echo $_SESSION['kurv'][$i]['antal'] for alle 4 elementer }
Og det virker fint!!! Coderdk> Jeg kan sagtens se pointen i din struktur. Men jeg har prøvet Men jeg har prøvet $_SESSION['kurv'][$i]['antal']++, men så forsvinder indholdet af de andre elementer ('vare' etc).
Nå, jeg fik det skrevet lidt om, så nu virker det: if(($_GET['add'])) { $i=$_GET['index']; $antal=$_SESSION['kurv'][$i]['antal']+1; $_SESSION['kurv'][$i]['antal']=$antal; }
(Og jeg synes stadig at det er smartere at bruge varenummer som index, så behøver du ikke lede kurven igennem efter et varenummer - så kan du bare bruge array_key_exists ;))
Enig med coderdk. Hvis du allerede har et unikt id for hver vare, så bør du bruge det i stedet for et fortløbende nummer, til identifikation af indholdet af kurven.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.