Avatar billede mjl Nybegynder
31. august 2006 - 19:54 Der er 16 kommentarer og
1 løsning

Indsætte flere records i MySQL med Checkboxe

Hej der ...

Jeg har en række Checkboxe, der er fremkommet ved en søgning i MySQL - de er listet op med en while-fætter, og har fra DB'ens side et unikt id alle sammen - men - hvis jeg nu hakker et par stykker af, for at opdatere netop disse records i DB'en, så skal de jo have hvert sit navn, og der skal køres flere gange UPDATE eller hvordan - jeg er totalt forvirret !!!

Håber I forstår!?

hilsen Conrad
Avatar billede nielle Nybegynder
31. august 2006 - 19:57 #1
Det afhænger af hvad du mener med at opdater? Snammer vi om at "lægge 1 til i et felt", eller noger mere avanceret?
Avatar billede nielle Nybegynder
31. august 2006 - 19:59 #2
"Snammer" -> "Snakker"
Avatar billede mjl Nybegynder
31. august 2006 - 19:59 #3
Et af felterne skal ændres, fra 0 til f.eks. 5 (eller at andet tal)
Avatar billede nielle Nybegynder
31. august 2006 - 20:00 #4
Hvordan afgøre du om det er 5 eller om det er et andet tal? Er det alle dem som er "hakket af" som skal ændres til 5? Og hvordan finder du ud af hvad det er for et tal de skal ændres til?
Avatar billede mjl Nybegynder
31. august 2006 - 20:02 #5
Der er 4 felter ...

id, dato, spaerret, note

id er unikt, og spaeret skal opdateres fra 0 til et eller andet tal - tallet er sat i en session - det er brugerens ID nummer - altså er tallet $brugerid
Avatar billede nielle Nybegynder
31. august 2006 - 20:04 #6
Som udgangspunkt kan man sagtens opdatere en masse rækker i en tabel, hvis man bare kan skrive det de skal opdateres til på en tilstrækkelig simpel form.

Denne:

UPDATE dinTabel SET ditFelt=5 WHERE id in (7,9,13)

- opdatere f.eks. de tre rækker som svare til id=7, 9 og 13.
Avatar billede nielle Nybegynder
31. august 2006 - 20:05 #7
Hvordan ser din form ud? Den med checkboksene.
Avatar billede mjl Nybegynder
31. august 2006 - 20:07 #8
Alle checkboxene hedder jo det samme name=noget men med forskellig value
Avatar billede mjl Nybegynder
31. august 2006 - 20:09 #9
En WHILE henter array fra DB - f.eks. alle dagene i aug. 2006 - så hedder boxene alle name=noget, og value'en bliver unik p.gr.a. id fra DB'en
Avatar billede nielle Nybegynder
31. august 2006 - 20:11 #10
Hvis du laver dem om til at hedde name=noget[] så kan man fra PHP efterfølgende aflæse dem som et array:

$noget = $_POST["noget"];
foreach ($noget as $value)
{
    echo $value . "<br>";
}

På den måde er det meget simpelt at aflæse de afhakkede checkbokse.
Avatar billede mjl Nybegynder
31. august 2006 - 20:17 #11
Hvor skal det ind henne?
Avatar billede nielle Nybegynder
31. august 2006 - 20:18 #12
Det skal ind på et passende sted på den side som din form bliver submittet til.
Avatar billede nielle Nybegynder
31. august 2006 - 20:20 #13
Ved at modtage dem i et array, kan man også nemt lave den kommaseparerede liste som anvendes til UPDATE'en vist ovenfor:

$sql = "UPPDATE dinTalel SET spaeret = $brugerid WHERE id IN (" . implode(",", $_POST["noget"]) . ")"
echo "Sådan ser SQL'e ud: $sql<br>";
Avatar billede mjl Nybegynder
31. august 2006 - 20:33 #14
Du er for skøn - 10.000 tak - det kører bare!!!!!!!
Avatar billede mjl Nybegynder
31. august 2006 - 20:34 #15
Smid endelig et svar ... !
Avatar billede nielle Nybegynder
31. august 2006 - 20:37 #16
Svar :^)
Avatar billede nielle Nybegynder
31. august 2006 - 20:42 #17
Takker :^)
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