Avatar billede tanzaweb Nybegynder
07. april 2005 - 22:16 Der er 22 kommentarer og
1 løsning

Notice: Undefined variable:

Hvorfor får jeg denne fejl?

har set den flere gange og fået det rettet, men ikke i dette tilfælde. Dette er linje 65: $subtotal += $sum;

Notice: Undefined variable: subtotal in d:\web\nett\kurv.php on line 65


      $sum = $row['produkt_pris']*$quantity;
        $subtotal += $sum;
        echo $quantity.' stk '. $row['produkt_navn'] .' - Pris : '. number_format($row['produkt_pris'],2,',','.').' kr. - Total : '.number_format($sum,2,',','.').' kr. <br>';
    }
    echo number_format($subtotal,2,',','.');
    mysql_close($db);
}
Avatar billede bromer Nybegynder
07. april 2005 - 22:17 #1
Hvor har du defineret $subtotal tidligere?
Avatar billede michael_stim Ekspert
07. april 2005 - 22:22 #2
Man får det mange gange når man "glemmer" ' i arrays -> $row[produkt_pris];
Men så vidt jeg kan se har du allesammen med.
Det skulle lige väre i ->echo number_format($subtotal,2,',','.');
Avatar billede michael_stim Ekspert
07. april 2005 - 22:23 #3
echo number_format('$subtotal',2,',','.');
Pröv den.
Avatar billede bromer Nybegynder
07. april 2005 - 22:27 #4
Ej det giver da ikke mening. Det er rigtigt at når du indekserer et array med strenge skal der være ' eller " omkring indekset. Men ikke når vi snakker om almindelige variabler så det skal være number_format($var,.. og ikke number_format('$var',...
Avatar billede michael_stim Ekspert
07. april 2005 - 22:31 #5
Näh, men den klager jo over $subtotal, og det er det eneste sted jeg kan finde den ;o)
Avatar billede bromer Nybegynder
07. april 2005 - 22:34 #6
Den klager jo fordi den ikke er defineret. Derfor skal den defineres tidligere i dokumentet som

$subtotal = 0;

men det hjælper ikke noget at smide quotes omkring den.
Avatar billede michael_stim Ekspert
07. april 2005 - 22:35 #7
Men det gör han jo her->$subtotal += $sum;
Avatar billede bromer Nybegynder
07. april 2005 - 22:37 #8
Nej, for det er jo det samme som

$subtotal = $subtotal + $sum;

og det vil sige at man benytter $subtotal før den er defineret
Avatar billede tanzaweb Nybegynder
07. april 2005 - 22:37 #9
det er de eneste 2 steder $subtotal står i scriptet det er lidt længere end det der står her men indeholder ikke andre. scriptet er hentet herfra og ændret meget lidt
Avatar billede bromer Nybegynder
07. april 2005 - 22:38 #10
tanzaweb: prøv at sætte "$subtotal = 0;" i toppen af dit dokument.
Avatar billede michael_stim Ekspert
07. april 2005 - 22:39 #11
Jaja, det er mig der sover, sorry. Man er jo nöd til at give $subtotal en värdi.
Avatar billede michael_stim Ekspert
07. april 2005 - 22:42 #12
Men det giver heller ingen mening, så kan han lig så godt köre med $sum og droppe subtotal helt. Spörgsmålet er hvad han vil bruge subtotal til, hvolken värdi den skal have.
Avatar billede michael_stim Ekspert
07. april 2005 - 22:43 #13
Sikken masse stavefejl, det er ved at blive sent ;o)
Avatar billede bromer Nybegynder
07. april 2005 - 22:45 #14
jo, det kan godt give mening idet vi kun ser bunden af et stykke kode. Jeg tror der ligger en while omkring som laver en sum for hvert produkt. Hvis $subtotal bare er defineret til 0 uden for løkken giver det fin mening.
Avatar billede tanzaweb Nybegynder
07. april 2005 - 22:48 #15
$ subtotal sættets jo til at alle de $sum der er lægges sammen og lægges i $subtotal som det ses i linjerne så skrive det ud nogenlunde således:

Notice: Undefined variable: subtotal in d:\web\nett\kurv.php on line 80
1 stk  286 adapter - Pris : 599,00 kr. - Total : 599,00 kr.
4 stk 2100 - Pris : 895,00 kr. - Total : 3.580,00 kr.
7 stk ura 841 - Pris : 950,00 kr. - Total : 6.650,00 kr.
10.829,00 er lig med $subtotal
Avatar billede tanzaweb Nybegynder
07. april 2005 - 22:49 #16
det er godt nok en while løkke derover, da den skriver rækkerne ud for det der lægges til i listen, og lægger alle $sum sammen i $subtotal
Avatar billede tanzaweb Nybegynder
07. april 2005 - 22:50 #17
den skriver den ud under alle omstændigheder skriver bare den er undefined
Avatar billede michael_stim Ekspert
07. april 2005 - 22:54 #18
OK, så er jeg med. Så må det väre som bromer skriver.
Undskyld jeg forvirrede mere end jeg hjalp.
//Michael
Avatar billede bromer Nybegynder
07. april 2005 - 22:56 #19
tanzaweb: Jeg er helt med på hvad du foretager dig. Dit script virker fint, men du får en notice fordi du benytter din variabel før du har initialiseret den. Det er netop - som jeg skrev tidligere - på grund af at første gang du benytter din variabel er det med linien:

$subtotal += $sum;

som er det samme som

$subtotal = $subtotal + $sum;

Hvis man ser på forståelsen af linien så finder den først værdien af $subtotal, derefter af $sum og lægger derefter dem sammen. Men idet du ikke har definret $subtotal endnu giver PHP en NOTICE men regner videre og regner bare med at at $subtotal er 0.

Prøv - igen som jeg skrev tidligere - at $subtotal = 0; før din while.
Avatar billede tanzaweb Nybegynder
07. april 2005 - 22:57 #20
Det virkede, men det har jo nok noget at gøre med error_reporting er sat højt så den viser denne, selv om den køre den.
Håber det kommer til at virke nu.
Avatar billede tanzaweb Nybegynder
07. april 2005 - 22:58 #21
læg lige et svar så sender jeg pointen
Avatar billede bromer Nybegynder
07. april 2005 - 22:59 #22
Du kan naturligvis få PHP til at ignorere det hvis du sætter error_reporting passende. Men grunden til fejlen er som jeg forklarede.
Avatar billede bromer Nybegynder
07. april 2005 - 22:59 #23
og et svar
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester