Bikeridr Skrevet 20. mars 2007 Del Skrevet 20. mars 2007 (endret) Hallojs, Min første spørre-post.. Jeg holder på å lage en veldig simpel handlekurv, men har rotet meg totalt bort i foreach-trøbbel. Løkken nekter å starte med [0], den begynner med [1]. Jeg har satt opp en enkel butikk med 5 varer fra en flat-fil som genererer en tabell. Dette funker. Så har jeg lagt inn et tekstfelt for bestilling - so far so good.. Men så begynner problemene Når jeg "bestiller" noe, så henter den info fra varelinjen under.. Her er den kodesnutten som ligger i bestillingssiden: <?php $vareliste=file("vliste.txt"); foreach($vareliste as $item => $value) { $data[$item]=explode("|", $value); } $smokk="Du har bestilt:<BR>\n"; foreach ($kjop as $kjop){ if ($kjop !=NULL){ $mokk .="$kjop stk - ".$data[$kjop][1]." á kr ".$data[$kjop][2]." totalt kr: ".number_format($kjop*$data[$kjop][2],2)."<BR>\n"; }} echo $smokk; echo $mokk; ?> Jeg har snudd/krøllet/herjet/forandret/resatt på koden, men jeg blir ikkenoe klokere. Jeg er sikker på at det er en liten møkkafilleting eller semikolon som jeg ikke finner ut hvor jeg har glemt å sette den inn.. Anyone? Her er lenken til "butikken": http://www.genericlocation.com/tst/butikk12.php Endret 20. mars 2007 av Bikeridr Lenke til kommentar
CruellaDeVille Skrevet 20. mars 2007 Del Skrevet 20. mars 2007 Jeg vet ikke om dette løser problemet ditt, men hvordan vet parser forskjell på array $kjop og variabel $kjop i foreach? foreach ($kjop as $kjop){ Lenke til kommentar
Bikeridr Skrevet 20. mars 2007 Forfatter Del Skrevet 20. mars 2007 Jeg vet ikke om dette løser problemet ditt, men hvordan vet parser forskjell på array $kjop og variabel $kjop i foreach? foreach ($kjop as $kjop){ 8197805[/snapback] Hmm, tja, si det..? Det har jeg ikke tenkt på. Men nå har jeg forandret foreach til dette: foreach ($kjop as $key => $antall){ if ($kjop !=NULL){ $mokk .="$antall stk - ".$data[$key][1]." á kr ".$data[$key][2]." totalt kr: ".number_format($antall*$data[$key][2],2)."<BR>\n"; }} Men problemet da er at bestillingen kommer ut med alle varene, også de som ikke inneholder noen verdi. Dette hadde jeg prøvd tidligere, men nå har jeg forandret det tilbake slik at om noen vil prøve å kjøre en "bestilling", så ser de hva som er feil.. Lenke til kommentar
Runar0 Skrevet 20. mars 2007 Del Skrevet 20. mars 2007 PHP <?php foreach ($kjop as $key => $antall){ if ($kjop !=NULL){ $mokk .="$antall stk - ".$data[$key][1]." á kr ".$data[$key][2]." totalt kr: ".number_format($antall*$data[$key][2],2)."<BR>"; }} ?> Er vel ikkje heilt logisk å skjekke $kjop kver gang du looper innholdet i kjop? burde vel heller vere if(...) { foreach(...) { }} Lenke til kommentar
ThaMezzy Skrevet 20. mars 2007 Del Skrevet 20. mars 2007 (endret) Offtopic: Bare noe jeg vil legge til, bruk engelske navn på variablene dine og vær så snill og bruk innrykk i koden din. Lettere og lese. OBS: Skriv i "Lowercase" i (x)html Endret 20. mars 2007 av ThaMezzy Lenke til kommentar
Bikeridr Skrevet 20. mars 2007 Forfatter Del Skrevet 20. mars 2007 ThaMezzy: Innrykk vurderes tatt til etteretning. Men det er en viss logikk i bruken av "norske" variabelnavn og UC på html. Ved bruk av "norske" variabelnavn slipper jeg å være redd for å lage en variabel som krasjer med funksjonsnavn. UC på html har jeg brukt siden 1996 og det er en vane som blir vanskelig å snu på.. Shadows0: Må ikke "$kjop !=NULL" ligge i en foreach-loop for å få med hver enkelt $kjop som ikke er tom? Jeg har knødd med denne greia i to dager, og jeg *vet* at det må være en måte å få handlekurven til å oppføre seg slik jeg tenker.. Lenke til kommentar
-morten Skrevet 20. mars 2007 Del Skrevet 20. mars 2007 kjop!=null gir ingen mening der nei. Hvis $kjop er null, så vil ikke foreach-en gå en eneste runde. Den går jo en løkke for hvert element i $kjop, og er $kjop null, så er det ingen elementer å gå en runde for. Men det du mener er vel egentlig å ha dette? PHP <?phpforeach ($kjop as $key => $antall) { if (!$antall) continue; // Hopp over linjer med 0 som antall $mokk .= "blahblah"; } ?> Lenke til kommentar
Bikeridr Skrevet 20. mars 2007 Forfatter Del Skrevet 20. mars 2007 kjop!=null gir ingen mening der nei... ...Men det du mener er vel egentlig å ha dette? PHP <?phpforeach ($kjop as $key => $antall) { if (!$antall) continue; // Hopp over linjer med 0 som antall $mokk .= "blahblah"; } ?> 8199869[/snapback] Hmm, ditt inlegg kom mens jeg knødde med koden min, men det er akkurat den der jeg plagdes med. Slik ser "min" løsning ut, og den virker: PHP foreach ($kjop as $key => $antall){ if (!empty($antall)){ $mokk .="$antall stk - ".$data[$key][1]." á kr ".$data[$key][2]." totalt kr: ".number_format($antall*$data[$key][2],2)."<BR>"; }} Nå skal jeg bare finne ut hvordan jeg får iterert totalbeløpet.. Kommer tilbake hvis (når) jeg står fast.. Ellers til alle: Takk for hjelpen. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå