Ik ben bezig met een web-site waarbij de bezoeker kan stemmen waar hij het liefst naar toe wil. Nu heb ik dit gemaakt dmv. van open vragen (het idee is dat de medewerker "stemt" waar hij het bedrijfsfeest wilt vieren) ik heb hiervoor verschillende tabellen namelijk:
tbl_polls
poll is omschrijving van de poll (poll_id)
tbl_question
bevat alle vragen (question_id)
tbl_answers
bevat alle mogelijke MC antwoorden (answer_id)
tbl_question_answers
koppelt een vraag aan x (1-N) antwoorden
Nu wil ik graag op een gemakkelijke meer zowel de vraag zelf ophalen en de mogelijke antwoorden. Nu heb ik onderstaand query bedacht, alleen ik krijg nu te vaak de mogelijke antwoorden terug (stuk of 15 keer; dat is iets minder dan het aantal records in tbl_answers)). Nu is mijn vraag wat doe ik fout?
query
Als ik deze query uitvoer krijg ik nu 5x drie antwoorden terug in de recordset, de drie antwoorden zijn de gekoppelde antwoorden aan de vraag.
Dit:
Waar wilt U het liefst feesten?
Antwoord 1 Efteling
Antwoord 2 Six Flags Holland
Antwoord 3 Muiderslot
Antwoord 4 Efteling
Antwoord 5 Six Flags Holland
Antwoord 6 Muiderslot
Antwoord 7 Efteling
Antwoord 8 Six Flags Holland
Antwoord 9 Muiderslot
Antwoord 10 Efteling
Antwoord 11 Six Flags Holland
Antwoord 12 Muiderslot
Antwoord 13 Efteling
Antwoord 14 Six Flags Holland
Antwoord 15 Muiderslot
Ik maak gebruik van MySQL en PHP.
tbl_polls
poll is omschrijving van de poll (poll_id)
tbl_question
bevat alle vragen (question_id)
tbl_answers
bevat alle mogelijke MC antwoorden (answer_id)
tbl_question_answers
koppelt een vraag aan x (1-N) antwoorden
Nu wil ik graag op een gemakkelijke meer zowel de vraag zelf ophalen en de mogelijke antwoorden. Nu heb ik onderstaand query bedacht, alleen ik krijg nu te vaak de mogelijke antwoorden terug (stuk of 15 keer; dat is iets minder dan het aantal records in tbl_answers)). Nu is mijn vraag wat doe ik fout?
query
code:
1
2
3
4
5
| SELECT poll_a.answer,poll_a.answer_id,poll_question_.answer_id,poll_question_.question_id,poll_questions.question,poll_questions.question_id
FROM poll_answers poll_a, poll_question_answers poll_question_, poll_questions poll_questions
WHERE ( poll_question_.answer_id=poll_a.answer_id)
AND ( poll_question_.question_id={$question_id})
AND ( poll_question_.question_id=poll_questions.question_id) |
Als ik deze query uitvoer krijg ik nu 5x drie antwoorden terug in de recordset, de drie antwoorden zijn de gekoppelde antwoorden aan de vraag.
Dit:
Waar wilt U het liefst feesten?
Antwoord 1 Efteling
Antwoord 2 Six Flags Holland
Antwoord 3 Muiderslot
Antwoord 4 Efteling
Antwoord 5 Six Flags Holland
Antwoord 6 Muiderslot
Antwoord 7 Efteling
Antwoord 8 Six Flags Holland
Antwoord 9 Muiderslot
Antwoord 10 Efteling
Antwoord 11 Six Flags Holland
Antwoord 12 Muiderslot
Antwoord 13 Efteling
Antwoord 14 Six Flags Holland
Antwoord 15 Muiderslot
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| // {Todo alienfruit 1 management Change query to obtain question text in the same query as the answers } // {Todo alienfruit 1 database Fix the query that showing duplicates of the possible MC answers } $dbrecord = NULL; $i = 1; print "<table width=\"500\" cellspacing=\"0\" cellpadding=\"0\" border=\"1\">\n"; print "<tr>\n"; print "<td colspan=\"3\"><b>{$question}</b></td>\n"; print "</tr>\n"; while ( $dbrecord = mysql_fetch_object( $query_id ) ) { print "<tr>\n"; print "<td width=\"15\"> </td>\n"; print "<td width=\"50\">Antwoord {$i}</td>\n"; print "<td>{$dbrecord->answer}</td>\n"; print "</tr>\n"; $i++; } print "</table>\n"; |
Ik maak gebruik van MySQL en PHP.
[ Voor 67% gewijzigd door alienfruit op 05-08-2003 15:35 . Reden: phpcode geplaatst ]