Ik ga een enquete script maken... Het uitlezen en zo ben ik al achter... Maar het toevoegen van nieuwe vragen + antwoorden nog niet... Namelijk:
Ik heb 3 tabellen in de database:
1. De tabel: Vragen
Hier staan de vragen in: (`id` & `vraag`)
2. De tabel: Antwoorden
Hier staan de antwoorden in (`id` & `antwoord`)
3. De linktabel (hier link ik de juiste antwoorden aan de juiste vraag)
(`id`, `vraagID`, `antwoordIDs`)
(antwoordIDs = geserialized, dus een array van de verschillende antwoorden ID's)...
Nu zit ik met volgend probleem:
Ik heb een form waar ik een vraag intype + 3 antwoorden
Ik submit -->
Nu kan ik de vraag in de vragen tabel wegschrijven en de antwoorden in de antwoord tabel, maar daarna moet ik het ID van deze vraag en het ID's van de 3 antwoorden weten om deze te kunnen linken in de tabel.
als je de vraag ophaalt uit de db, kan je toch ook het ID ophalen...
Bij het ophalen wel...
Maar als ik m'n form om vraag + 3 antwoorden heb ingevuld, moet ik de vraag wegschrijven, deze krijgt een bepaald id toegewezen (auto_increment), maar ik moet dit ID weten om in het veld vraagid bij antwoorden te plaatsen zodat ik bij het uitlezen weet dat het antwoord bij die vraag hoort
Maar je kan best de laatst geinserted id opvragen (na toevoegen vraag of antwoord):
mbv de php-functie mysql_insert_id() kan je de laatste id van de laatste query opvragen.
mysql_query("INSERT INTO vraag_antwoord (vraag,antwoord) VALUES (".$vraagid.",".$antwoordid1.")");
mysql_query("INSERT INTO vraag_antwoord (vraag,antwoord) VALUES (".$vraagid.",".$antwoordid2.")");
Dit werkt en is (imho) iets beter als explode, aangezien je in de tussentabel kan plaatsen of dit het correct antwoord is of niet. Daarbovenop ben ik niet zo'n voorstander van explode omdat je altijd de mogelijkheid van je delimiter die voorkomt in een antwoord moet kunnen omzeilen .
Maar een enquete heeft geen goed of fout antwoord he
Een enquete is imo voor meningen en marktonderzoek... dus op zich kan dat ook perfect met mijn voorstel en een session om te kijken of de vraag al beantwoord is en eventueel aan te passen als ze op de "back"-knop drukken...
Moet er naast die 'mysql_insert_id();' niets meegegeven worden parameters? Want hoe weet dat commando nu over welke tabel 't gaat?
+ enig idee hoe ik dat commando in zend framework uitvoer?
Er hoeven geen extra parameters worden meegegeven, ik geloof dat MySQL gewoon de laatste query in jouw connectie gebruikt.
Over ZF; ik heb er niet veel verstand van, maar misschien heb je wat aan deze thread: http://zend-fra...74354.html
UpLink schreef:
Mss de antwoorden scheiden met een | en als je ze ophaalt exploden op de | ?
dan kan je per ID mooi afwerken
Vraag (ID=1): Is SiteMasters cool?
Antwoord (ID=1): Ja|Nee|Misschien
Als je dat explode (Ja|Nee|Misschien) krijg je Ja Nee Misschien en die kun je dan in een keuzelijstje zetten he :-)
Is volgens mij zowat de snelste oplossing...
Ze hebben mij dat ooit zo eens voorgesteld en het lukte toch goed
Zo'n constructie in je database toepassen is nooit de beste oplossing. Data groeperen in tabellen met een koppeling is de manier waarop databases hiermee om moeten gaan.