Ik ben bezig met een vragenlijst aan 't maken enkel moet deze vragenlijst uit 3 tabellen opgebouwd worden;
vragenlijst, kop, groep
kop is gekoppeld aan een vraag en moet een kop weergeven voor de aangegeven vraag#, groep is gekoppeld aan een vraag# of vraag # t/m # dit wil ik gebruiken voor puntentelling.
de vragenlijst database ziet er zo uit ;
CREATE TABLE `vragenlijst` (
`id` INT NOT NULL AUTO_INCREMENT,
`mid` INT(9),
`date` DATETIME,
`vraag1` VARCHAR(255),
`antwoord1` VARCHAR(255),
`vraag2` VARCHAR(255),
`antwoord2` VARCHAR(255),
`vraag3` VARCHAR(255),
`antwoord3` VARCHAR(255),
`vraag4` VARCHAR(255),
`antwoord4` VARCHAR(255),
`vraag5` VARCHAR(255),
`antwoord5` VARCHAR(255),
`vraag6` VARCHAR(255),
`antwoord6` VARCHAR(255),
`vraag7` VARCHAR(255),
`antwoord7` VARCHAR(255),
`vraag8` VARCHAR(255),
`antwoord8` VARCHAR(255),
`vraag9` VARCHAR(255),
`antwoord9` VARCHAR(255),
`vraag10` VARCHAR(255),
`antwoord10` VARCHAR(255),
`vraag11` VARCHAR(255),
`antwoord11` VARCHAR(255),
`vraag12` VARCHAR(255),
`antwoord12` VARCHAR(255),
`vraag13` VARCHAR(255),
`antwoord13` VARCHAR(255),
`vraag14` VARCHAR(255),
`antwoord14` VARCHAR(255),
`vraag15` VARCHAR(255),
`antwoord15` VARCHAR(255),
`vraag16` VARCHAR(255),
`antwoord16` VARCHAR(255),
`vraag17` VARCHAR(255),
`antwoord17` VARCHAR(255),
`vraag18` VARCHAR(255),
`antwoord18` VARCHAR(255),
`vraag19` VARCHAR(255),
`antwoord19` VARCHAR(255),
`vraag20` VARCHAR(255),
`antwoord20` VARCHAR(255),
`vraag21` VARCHAR(255),
`antwoord21` VARCHAR(255),
`vraag22` VARCHAR(255),
`antwoord22` VARCHAR(255),
`vraag23` VARCHAR(255),
`antwoord23` VARCHAR(255),
`vraag24` VARCHAR(255),
`antwoord24` VARCHAR(255),
`vraag25` VARCHAR(255),
`antwoord25` VARCHAR(255),
`vraag26` VARCHAR(255),
`antwoord26` VARCHAR(255),
`vraag27` VARCHAR(255),
`antwoord27` VARCHAR(255),
`vraag28` VARCHAR(255),
`antwoord28` VARCHAR(255),
`vraag29` VARCHAR(255),
`antwoord29` VARCHAR(255),
`vraag30` VARCHAR(255),
`antwoord30` VARCHAR(255),
`vraag31` VARCHAR(255),
`antwoord31` VARCHAR(255),
`vraag32` VARCHAR(255),
`antwoord32` VARCHAR(255),
`vraag33` VARCHAR(255),
`antwoord33` VARCHAR(255),
`vraag34` VARCHAR(255),
`antwoord34` VARCHAR(255),
`vraag35` VARCHAR(255),
`antwoord35` VARCHAR(255),
`vraag36` VARCHAR(255),
`antwoord36` VARCHAR(255),
`vraag37` VARCHAR(255),
`antwoord37` VARCHAR(255),
`vraag38` VARCHAR(255),
`antwoord38` VARCHAR(255),
`vraag39` VARCHAR(255),
`antwoord39` VARCHAR(255),
`vraag40` VARCHAR(255),
`antwoord40` VARCHAR(255),
`vraag41` VARCHAR(255),
`antwoord41` VARCHAR(255),
`vraag42` VARCHAR(255),
`antwoord42` VARCHAR(255),
`vraag43` VARCHAR(255),
`antwoord43` VARCHAR(255),
`vraag44` VARCHAR(255),
`antwoord44` VARCHAR(255),
`vraag45` VARCHAR(255),
`antwoord45` VARCHAR(255),
`vraag46` VARCHAR(255),
`antwoord46` VARCHAR(255),
`vraag47` VARCHAR(255),
`antwoord47` VARCHAR(255),
`vraag48` VARCHAR(255),
`antwoord48` VARCHAR(255),
`vraag49` VARCHAR(255),
`antwoord49` VARCHAR(255),
`vraag50` VARCHAR(255),
`antwoord50` VARCHAR(255),
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
ALTER TABLE `vragenlijst` CHANGE `date` `date` DATETIME NULL DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE `vragenlijst` CHANGE `mid` `mid` INT(9) NULL DEFAULT '000';
kop db:
CREATE TABLE `kop` (
`id` INT(9) NOT NULL AUTO_INCREMENT,
`vraag` INT(9),
`vragenlijst` INT(9),
`title` TEXT,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
Ik kom niet uit t volgende;
Ik wil een loop maken die alle vragen weergeeft maar als er een kop overeenkomt met het vraag# uit vragenlijst moet deze kop weergegeven worden. enige wat er nu gebeurt is dat eerste 8 vragen niet weergeven worden en erna wel.
de data in vragenlijst die ik nu gebruik als voorbeeld staan 34 vragen in een record.
<?php
$mysqli = new mysqli("localhost","root","","onderzoek");
if ($mysqli -> connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli -> connect_error;
exit();
}
$id= $_GET['id'];
if(isset($id)){
$query = "SELECT * FROM kop WHERE vragenlijst={$id}";
if ($result = $mysqli->query($query)) {
/* fetch associative array */
$koppen = array();
while ($row = $result->fetch_assoc()) {
$kop = array(
"id" => $row['vraag'],
"tekst" => $row['title']
);
array_push($koppen, $kop);
}
/* free result set */
$result->free();
}
$query2 = "SELECT * FROM vragenlijst WHERE id={$id} LIMIT 1";
if ($result = $mysqli->query($query2)) {
/* fetch associative array */
while ($row = $result->fetch_assoc()) {
for($i=1;$i<=50;$i++){
if(!empty($row['vraag'.$i])){
if(!empty($koppen[$i]['id'])){
if($koppen[$i]['id'] == $i){
echo "[".$koppen[$i]['tekst']."] (#".$i.") ".$row['vraag'.$i]." <br/>";
}
} else {
echo "(#".$i.") ".$row['vraag'.$i]." <br/>";
}
}
}
}
/* free result set */
$result->free();
}
$mysqli -> close();
}
?>
Mocht je meer informatie willen hebben stel ze gerust.
mvg,
Pascal
