Avatar billede snigeren Nybegynder
11. august 2007 - 14:01 Der er 6 kommentarer og
1 løsning

findes der et alternativ til foreach?

Jeg har problemer med min foreach... så ville jeg høre om der var et bedre alternativ?

mit problem er at det der kommer igennem foreach overskriver hinanden,.. når jeg med nedenstående script henter input fra felterne på forrige side og vil updatere min cart tabel i DB er det kun den sidste post der bliver opdateret....

foreach($_POST AS $field => $value)
{
       
    if($value == 0)
    {
    // Remove the item from the users cart
    //RemoveItem($itemId);
    }
    else
    {
        mysql_query("update cart set qty = '" . $value . "' where cookieId = '" . GetCartId() . "' and itemId = '$itemId' and surfacenavn = '$surfacenavn'") or die(mysql_error());
    }
}


og de data jeg får fra forrige side ser f.eks. således ud:

Array
(
    [itemId] => 11
    [beskrivelse] => nyeste ting i db´en
    [surfacenavn] => Hvid
    [qty2] => 1
    [qty11] => 3
    [kundenavn] =>
    [Submit] => Bestil
)

hvad kan jeg gøre?
Avatar billede barklund Nybegynder
11. august 2007 - 14:36 #1
for det første skal du kalde dine inputfelter for qty[2] i stedet for qty2... Derudover skal du loop'e over $_POST['qty'] som:

foreach($_POST['qty'] AS $itemId => $value)

Så vil det nok virke lidt bedre...
Avatar billede snigeren Nybegynder
11. august 2007 - 14:49 #2
uh det begynder at se godt ud men jeg har sat [] om tallet i inputfeltet så det ser således ud istedet og har lavet en mixId der er 100% unik fra produkt til produkt:

Array
(
    [mixId] => Array
        (
            [105] => 105
            [292] => 292
        )

    [itemId] => 2
    [beskrivelse] => 2. ting i db´en
    [surfacenavn] => 2127, blå
    [qty] => Array
        (
            [1] => 4
            [2] => 3
        )

    [kundenavn] =>
    [Submit] => Bestil
)

kan man ikke lave få den til at gøre som jeg forsøger i min query herunder:

mysql_query("update cart set qty = '" . $value . "' where cookieId = '" . GetCartId() . "' and mixId = '$mixId'") or die(mysql_error());


Herunder kan du se mit indput felt hvis det kan bruges til noget:
<INPUT onkeypress="return isNumberKey(event)" type="text" name="qty[<?php echo $row["itemId"]; ?>]" value="<?php echo $row["qty"]; ?>" size="3">
Avatar billede snigeren Nybegynder
11. august 2007 - 14:53 #3
min foreach ser i øvrigt således ud nu:

foreach($_POST['qty'] AS $itemId => $value)
{
                   
    if($value == 0)
    {
        // Remove the item from the users cart
        //RemoveItem($itemId);
    }
    else
    {
        mysql_query("update cart set qty = '" . $value . "' where cookieId = '" . GetCartId() . "' and mixId = '$mixId'") or die(mysql_error());
    }
}
Avatar billede snigeren Nybegynder
12. august 2007 - 15:55 #4
barklund du må gerne smide et svar her,.. jeg kom videre efter du lige hjalp mig. I den sidste ende var Jakobdo med i et andet spg og afsluttede mit problem =)

Men tak for assistencen
Avatar billede barklund Nybegynder
14. august 2007 - 11:54 #5
Okay så :)

100% unik lyder spændende - hvordan er noget som helst andet end 100% unikt unikt? :)
Avatar billede snigeren Nybegynder
14. august 2007 - 17:35 #6
hehe jamen så bare unik da! =)
Avatar billede barklund Nybegynder
15. august 2007 - 11:49 #7
Taktak :)
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