[PHP & MYSQL] Waarde uit DB omzetten naar multi checkbox

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Spookie
  • Registratie: Mei 2007
  • Laatst online: 06-09 13:23
[Huidige Situatie]

[MYSQL - Structuur]

Ik heb een tabel [enquete] met daarin
hierin staat een veld genoemd "vraagid"
in dit veld staan de volgende waarde "1"
hierin staat een veld genoemd "Gegevens".
in dit veld staat de volgende waarde's "1|3|5".
... nog een aantal andere velden die momenteen niet belangrijk zijn.

Ik heb een tabel [Vragen];
Hierin staat een veld genoemd "Vragen";
- In dit veld staat de volgende waarde's "Waarom ...."
Hierin staat een veld genoemd "Keuze's"
- In dit veld staat de volgende waarde's "Keuze1|Keuze2".
Hierin staat een veld genoemd "Type".
- In dit veld staat de volgende waarde "Checkbox".

[PHP]

Als ik nu pagina ..../page.php?id=1 bezoek
Worden er netjes op het scherm vraag 1 van het veld [vragen] weer gegeven.
Hieronder staan netjes de vragen die in het tabel staan. Allemaal met een netjes aanvink hokje.

Ik wil nu dat als de vraag al is een keer ingevuld door de gebruiker (waar ik verschillende checks voor heb gemaakt). Deze checkboxen allemaal netjes worden ingevuld.

Om de vraag op het scherm te tonen gebruik ik de volgende code

code:
1
2
3
4
5
6
7
8
9
foreach($antwoorden as $antwoord){ 
if($demotest == $nummer) {
            echo '<input type="'.$row_vragen_type.'" name="vraag[]" value="'.$nummer.'" checked/><label for="antwoord'.$nummer.' checked">'.$antwoord.'</label><br/>';
                $nummer++;  
} else {
    echo '<input type="'.$row_vragen_type.'" name="vraag[]" value="'.$nummer.'"/><label for="antwoord'.$nummer.'">'.$antwoord.'</label><br/>';
            $nummer++;  
   }
}


Nu krijg ik ook al voor elkaar om al een waarde aangevinkt te krijgen als deze waarde in de db voor komt.
Helaas gebeurt dit alleen bij de laatste waarde die in het tabel "Gegevens" staan.

Weet iemand een oplossing om alle checkboxen aan te vinken als deze waarde in de db voor komt.?

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:12

Creepy

Tactical Espionage Splatterer

Ga eerst eens aan het debuggen. Druk dus $demotest en $nummer eens af en kijk eens wat er gebeurd. Wat is $demotest trouwens? Je geeft niet aan wat er in zit (weet je dat eigenlijk wel precies?) en wij kunnen ook niet zomaar gokken natuurlijk.

Geen direct oplossing voor je probleem maar wel een enorm goede tip om het jezelf een stuk makkelijk te maken: ga aub je database normaliseren. In principe sla je nooit meerdere zaken in 1 veld op. Dus alles waar je nu nu een scheidingsteken gebruikt (o.a. gegevens en keuzes) zou je moeten gaan opsplitsen en minstens 1 extra tabel voor moeten aanmaken. Alles in 1 veld opslaan lijkt misschien makkelijker maar je maakt het uiteindelijk echt alleen maar makkelijk voor jezelf als je dit op een fatsoenlijke manier gaat opslaan.

[ Voor 3% gewijzigd door Creepy op 28-02-2010 14:58 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney