28. februar 2004 - 11:55
Der er
11 kommentarer og 1 løsning
parse error i foreach
Jeg får en parse error i den første linie af denne kode: --------------- foreach $product[] { //Det er her jeg for en parse error $p_id = $product["product"]["id"]; $merchant_form = $product["product"]["merchant"]; $price_form = $product["product"]["price"]; $deliveryprice_form = $product["product"]["delivery_price"]; $deliverytime_form = $product["product"]["delivery_time"]; $stock_form = $product["product"]["stock"]; $merchant = &$HTTP_POST_VARS['merchant_form']; $price = &$HTTP_POST_VARS['price_form']; $delivery_price = &$HTTP_POST_VARS['deliveryprice_form']; $delivery_time = &$HTTP_POST_VARS['deliverytime_form']; $stock = &$HTTP_POST_VARS['stock_form']; --------------- Jeg får indholdet af arrayet fra denne kode (skulle dog ikke have inflydelse på problemet): --------------- $product[] = array ( "product" => array( "id" => $row3[id], "merchant" => "merchant_".$row3[id], "stock" => "stock_".$row3[id], "delivery_time" => "deliverytime_".$row3[id], "delivery_price" => "deliveryprice_".$row3[id], "price" => "price_".$row3[id] ) ); ---------------
Annonceindlæg fra Lector
28. februar 2004 - 12:20
#1
Du skal lave en foreach på en af følgende måder: foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement Men det vil ikke give mening at løbe gennem at array og tildele værdierne til statiske variabler, så vil de jo kun indeholde den sidst tildelte værdi.
28. februar 2004 - 12:55
#2
har læst foreach ekspemplerne igennem (fra manualen), men syntes ikke det kan løse mit problem. Troede jeg kunne gøre det på denne måde.
28. februar 2004 - 13:05
#3
detox har beskrevet syntaxen for en foreach. Du skal ændre det i nogelunde renne retning: foreach ( $product as $a_product ) { Og i stedet for $product["product"]["id"] bruger du så bare $a_product["id"];
28. februar 2004 - 13:09
#4
Vil det sige at alle de arrays jeg danner på forrige side, skal erstattes med: $a_product["id"] ?
28. februar 2004 - 13:19
#5
Efter ændring: Warning: Invalid argument supplied for foreach() in /home/fedtmco/public_html/mytackle/admin/prices/prices_ok.php on line 45 Der er min kode (linie 45 er den første): <? foreach ( $product as $a_product ) { $p_id = $a_product["id"]; $merchant_form = $a_product["merchant"]; $price_form = $a_product["price"]; $deliveryprice_form = $a_product["delivery_price"]; $deliverytime_form = $a_product["delivery_time"]; $stock_form = $a_product["stock"]; $merchant = &$HTTP_POST_VARS['$merchant_form']; $price = &$HTTP_POST_VARS['$price_form']; $delivery_price = &$HTTP_POST_VARS['$deliveryprice_form']; $delivery_time = &$HTTP_POST_VARS['$deliverytime_form']; $stock = &$HTTP_POST_VARS['$stock_form'];
28. februar 2004 - 13:33
#6
Har du evt. prøvet at tjekke at $product indeholder hvad du forventer? Den burde ikke give den fejlmelding, selvom det er forkert sat op. Du skal enten ændre dit array til: $product[] = array( "id" => $row3['id'], "merchant" => "merchant_".$row3['id'], "stock" => "stock_".$row3['id'], "delivery_time" => "deliverytime_".$row3['id'], "delivery_price" => "deliveryprice_".$row3['id'], "price" => "price_".$row3['id'] ); eller din foreach til: foreach ( $product as $a_product ) { $p_id = $a_product['product']["id"]; $merchant_form = $a_product['product']["merchant"]; $price_form = $a_product['product']["price"]; $deliveryprice_form = $a_product['product']["delivery_price"]; $deliverytime_form = $a_product['product']["delivery_time"]; $stock_form = $a_product['product']["stock"]; $merchant = &$HTTP_POST_VARS['$merchant_form']; $price = &$HTTP_POST_VARS['$price_form']; $delivery_price = &$HTTP_POST_VARS['$deliveryprice_form']; $delivery_time = &$HTTP_POST_VARS['$deliverytime_form']; $stock = &$HTTP_POST_VARS['$stock_form']; } Men det giver stadig IKKE mening at tildele værdierne i arrayet til simple variabler, da de hele tiden bliver overskrevet med den sidste (medmindre selvfølgelig dit array kun har et element).
28. februar 2004 - 13:34
#7
Tjek dit array med: print_r($product);
28. februar 2004 - 13:40
#8
ahhh... jeg troede man kunne overføre et array via en form, men det er nok ikke tilfældet. Der skulle gå generes et nyt array for hvert produkt.
28. februar 2004 - 14:12
#9
Du KAN overføre array's fra forms. Jeg troede du hentede oplysningerne fra en database ;o)
03. marts 2004 - 13:32
#10
Jeg fik ikke brug for arrays det alligevel, men lærte da lidt. Hvis du laver et svar (detox), så får du point.
03. marts 2004 - 13:51
#11
Ok, så tillykke med din nye viden :o)
04. marts 2004 - 08:10
#12
takker :P
Vi tilbyder markedets bedste kurser inden for webudvikling