Avatar billede 4128 Nybegynder
16. juli 2003 - 18:34 Der er 15 kommentarer og
1 løsning

sammensætning af variabel og int virker ikke

for($i=1; $i<20; $i++)
if ("'$product','$i'" == 1)
$amount = $amount + "'$amount','$i'";

Nogen der kan se fejlen i min if sætning?

Det skulle gerne give
if ("$product2" == 1)
if ("$product3" == 1)...
Avatar billede htm Nybegynder
16. juli 2003 - 18:41 #1
for($i=1; $i<20; $i++) {
  if ("'$product','$i'" == 1) {
    $amount = $amount + "'$amount','$i'";
  }
}
Avatar billede htm Nybegynder
16. juli 2003 - 18:42 #2
ups glem det... men du mangler at omkranse din for-løkke og if-sætning af { og }
Avatar billede htm Nybegynder
16. juli 2003 - 18:48 #3
jeg ville lave det som et array i stedet der hvor du har $product1 = "blabla"; laver du om til $product[] = "blabla";

og så laver du koden som følger:

for($i=0; $i<count($product); $i++) {
  if ($product[$i] == 1) {
    $amount = $amount + "'$amount','$i'";

  }
}

denne linie kan jeg ikke se hvad du vil:

$amount = $amount + "'$amount','$i'";

Men husk at for at samle to strenge skal du bruge . og for at tælle to numre sammen skal du bruge +
Avatar billede erikjacobsen Ekspert
16. juli 2003 - 18:52 #4
for($i=1; $i<20; $i++)
if (${"product$i"} == 1)
$amount = $amount + ${"amount$i"};
Avatar billede jakoba Nybegynder
16. juli 2003 - 18:55 #5
en hurtig måde, der meget ligner din:

for($i=1; $i<20; $i++)
    if ( ${"product".$i} == 1)
        $amount = $amount + "'$amount','$i'";

lige denne gang er {} on for-løkkens og if-sætningens indhold ikke påkrævet (fordi der kun er een sætning), men som htm vil jeg klart anbefale at du skriver dem alligevel.

mvh JakobA
Avatar billede erikjacobsen Ekspert
16. juli 2003 - 18:56 #6
Det kommer sikkert fra en form (rent gæt ...), så jeg syn's det er pænere med:

for($i=1; $i<20; $i++)
if ($_POST["product$i"] == 1)
$amount = $amount + $_POST["amount$i"];
Avatar billede 4128 Nybegynder
16. juli 2003 - 19:31 #7
Der er desværre ikke nogen af dem der virker...

Jeg skal meget simpelt have sat $product variablen sammen med $i variablen, for at få den variabel, jeg reelt skal bruge til at sammenligne med i if sætningen.
Det samme skal gøres med amount men det er samme kode.

Bær over med min uvidenhed.
Jeg har lært en smule java, og nu har jeg fået til opgave at lave en webshop i php med pbs adgang.
Avatar billede htm Nybegynder
16. juli 2003 - 19:34 #8
4128>> Som sagt vil jeg anbefale dig at lave begge til et array så. Altså både $product og $amount
Avatar billede erikjacobsen Ekspert
16. juli 2003 - 19:37 #9
vis lidt mere, fortæl lidt mere - mine forslag burde virke
Avatar billede jakoba Nybegynder
16. juli 2003 - 19:45 #10
enig. det burde virke.
prøv evt at debugge for at teste om der virkelig er variabler med de navne:

for($i=1; $i<20; $i++) {
    echo "product$i er " .${"product".$i} ."<br>";
    if ( ${"product".$i} == 1) {
        echo "amount$i er " .${"amount".$i} ."<br>";
        $amount = $amount + ${"amount".$i};
    }
}
Avatar billede 4128 Nybegynder
16. juli 2003 - 19:53 #11
Jeg har et videresendt alle informationerne om 20 produkter fra index filen til en anden via pbs.
amount1 --prisen på prod 1
amount2 --prisen på prod 2 Blah blah
productname1  --produktens navn, samme model som amount
product1    -- en boolean standard 0, men 1 hvis den er krydset ud, samme model som amount.
Ialt 60 informationer...

Jeg skal så bruge den samlede pris, men er ikke meget for at lave 20 if-sætninger
If ($product1 == 1)
    $amount = $amount + amount1;
If ($product2 == 1)
    $amount = $amount + amount2;

Derfor prøver jeg at lave en 3liniers løsning.
Jeg skal
Avatar billede 4128 Nybegynder
16. juli 2003 - 19:57 #12
Tak Jakoba Det virkede perfekt :)

Kan du ikke lige svare, så jeg kan give dig nogen point.
Avatar billede jakoba Nybegynder
16. juli 2003 - 20:00 #13
det var det samme erikjacobsen svarede for længe siden :)
Avatar billede htm Nybegynder
16. juli 2003 - 20:10 #14
Hmmm 4128>> Nu accepterede du mit svar?

Godt ud fra at det var en fejl?

Hvem skulle have haft point?
Avatar billede erikjacobsen Ekspert
16. juli 2003 - 20:14 #15
Jeg frafalder point.

Men jeg vil alligevel slå til lyd for min løsning med $_POST som langt
den pæneste og den mest portable.
Avatar billede 4128 Nybegynder
16. juli 2003 - 21:44 #16
jakoba kom med den løsning der virkede, så det må være ham. Men jeg tvivler ikke på at jeres løsninger er gode. Men de virkede desværre ikke.
Men behold da dine point som tak for den store hjælp.

Hvis erikjacobsen også ønsker point for den store hjælp(forsøg), er jeg gerne villig til at give dem.

Nu har jeg fået problemer med min router, så det kan jeg sikkert bruge resten af aftenen på at løse. -har postet et sprg.
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