Avatar billede thepulse Nybegynder
23. juni 2004 - 19:57 Der er 14 kommentarer og
1 løsning

post problem!

Hejsa

Jeg har et lille problem jeg ikke lige kan lure!
Jeg har et stort skema med 15x15 form felter, som bliver genereret med en for løkke, dette giver selvfølgelig en laaang post liste som ser sådan ud:
c1r1=555&c2r1=666&c3r1=777&c4r1=&c5r1=&c6r1=&c7r1=&c8r1=&c9r1
osv. osv (der er jo 15x15)

Det der så er mit problem er at det også skal gemmes i en database med en for løkke, men hvordan gør jeg det, det ser PT sådan ud:
mysql_query("insert into smupeordre (Prod, Dato, Antal, Skift, Week) values('$pliste[$kk]', '$c[$tt]', '$c1r1', '$skifte[$tt]', $week)");
Problemet er jo at variablen $c1r1 næste gang skal hedde $c2r1 osv. osv. osv. så hvordan gør jeg lige det????

Michael
Avatar billede dennismp Nybegynder
23. juni 2004 - 20:02 #1
prøv
for($i=1;$i<=15;$i++) {
  $val = {'c'.$i.'r1'};
  mysql_query("insert into smupeordre (Prod, Dato, Antal, Skift, Week) values('$pliste[$kk]', '$c[$tt]', '$val', '$skifte[$tt]', $week)");
}
Avatar billede dennismp Nybegynder
23. juni 2004 - 20:02 #2
ellers brug arrays - det vil nok være pænere.
Avatar billede jchillerup Nybegynder
23. juni 2004 - 20:05 #3
Det vil være nemmere, hvis du laver alle felternes navne til et array. Altså NAME="felt[c1r1]". Bemærk, der ikke bruges nogen gåseøjne.

Du skal bruge funktionerne foreach() og eval().

foreach ($felt as $key => $value) {
eval("mysql_query(\"insert into smupeordre (Prod, Dato, Antal, Skift, Week) values('$pliste[$kk]', '$c[$tt]', '$".$key."', '$skifte[$tt]', $week)\");");
}

eval() er en funktion, der evaluerer en string som PHP kode (bare lige for din information).

Fx er eval("echo \"Hej verden\";"); det samme som echo "Hej verden";
Avatar billede jchillerup Nybegynder
23. juni 2004 - 20:06 #4
Hov... Der kom dennismp mig lige i forkøbet.
Avatar billede jchillerup Nybegynder
23. juni 2004 - 20:06 #5
Og forresten, dennismp, du glemte at der også er en variabel efter "r".. Altså 15² forskellige værdier.
Avatar billede thepulse Nybegynder
23. juni 2004 - 20:06 #6
Joooooooooooooooo, arrays ville være pænere, men hvordan gør man et form post til et array! altså <input type="text" name="?????????" value="jowjow">
Avatar billede dennismp Nybegynder
23. juni 2004 - 20:16 #7
<input type="text" name="cr[1][2]" value="jowjow">
Avatar billede thepulse Nybegynder
23. juni 2004 - 20:19 #8
$val = {'c'.$i.'r1'};
giver fejl, unexpected { ????
Avatar billede thepulse Nybegynder
23. juni 2004 - 20:24 #9
Synes ikke rigtig nogen af jeres forslag virker resulterer i at der intet sker når jeg trykker submit!
Avatar billede dennismp Nybegynder
23. juni 2004 - 20:25 #10
prøv:
$val = ${'c'.$i.'r1'};

men det giver kun c1r1,c2r1,c3r1 .. osv
Avatar billede thepulse Nybegynder
23. juni 2004 - 20:26 #11
Synes ikke rigtig nogen af jeres forslag virker
name="cr[1][2]"
resulterer i at der intet sker når jeg trykker submit!
Avatar billede jchillerup Nybegynder
23. juni 2004 - 20:27 #12
Jeg er altså 99% sikker på, at mit virker.
Avatar billede dennismp Nybegynder
23. juni 2004 - 20:34 #13
.. og du har rettet så du bruger variable $_GET/POST['cr'][1][2] ?

men brug jchillerup's forslag. Eksperten gider ikke at sende mig mails og jeg gider ikke sidde og reloade - for at se om der kommer nye indlæg.
Avatar billede thepulse Nybegynder
23. juni 2004 - 21:03 #14
$val = ${'c'.$i.'r'.$t};

det virkede at sætte $ foran første tuborh, jeg takker mange gange!
Avatar billede thepulse Nybegynder
23. juni 2004 - 21:04 #15
Tak til jer begge!
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