Ik heb dus voor elke vraag in de database een class 'vraag' met daarin: $id; het id van de vraag, $inhoud; hoe de vraag luid, $antwoorden; een array met alle mogelijke antwoorden op de vraag.
Maar nu zit ik met de vraag:
Hoe lees ik deze classes nu een voor een uit zodat ik een weergave krijg van:
in de class qlist gaat hij voor elke vraag in de database een nieuwe class "vraag" aanmaken met daarin het ID van die vraag + de inhoud van de vraag + de oplossingen in een array.
Ik weet ook niet zeker of dit de juiste werkwijze is hoe ik 't script tot nu toe opgebouwd heb (ik ben pas sinds kort begonnen met gestructureerd programmeren).
[..quote..]
Alvast bedankt voor je hulp maar er zijn nog enkele dingen die ik niet goed begrijp/die nog niet werken.
Zoals: wanneer moet ik nu getVragen() en getAntwoord() precies uitvoeren.
en bv dit stukje code:
[..code..]
er is toch nog geen $row['id']?
++ Bedankt voor de tip over execute voor database Â
Copy Paste fout xD, de WHERE can je volledig verwijderen.
Wat ik doe, is 2 query's op de database afvuren, en alle antwoorden en vragen opslaan (getAntwoorden en getVragen). Deze sla je op in een array, met getVraag haal je 1 vraag op.
of je nu 1 of een paar miljoen vragen wil weergeven. Het blijven maar 2 query's die je uitvoert.
[..quote..]Copy Paste fout xD, de WHERE can je volledig verwijderen.
Wat ik doe, is 2 query's op de database afvuren, en alle antwoorden en vragen opslaan (getAntwoorden en getVragen). Deze sla je op in een array, met getVraag haal je 1 vraag op.
of je nu 1 of een paar miljoen vragen wil weergeven. Het blijven maar 2 query's die je uitvoert.
public function GetVraag($i_VraagID) {
if(array_key_exists($i_VraagID, $this->vragen) {
$s_Vraag = $this->vragen[$i_VraagID]; // is dus de vraag
$a_Antwoorden = $this->antwoorden[$i_VraagID]; // in een foreach gooien
}
}
Ik had inderdaad ook opeens door dat het ID helemaal geen value heeft in 't array maar 't de key is. Ik had 't anders opgelost aangezien ik niet wist van 't bestaan van "arrey_key_exists", weliswaar gaat het daar nog vele gemakkelijker mee.
Nu geraak ik wel weer verder. Hartstikke bedankt! =)
Want '2' en '4' zijn helemaal geen antwoorden maar '2' is het ID van '16' en '4' is het ID van '33'. Echter stond er nog wel een een 2de antwoord bij elke vraag in de database, namelijk '15' en '30', die hij hier niet weergeeft, ik vermoed omdat het maken van de array in een while loop staat en hij die telkens opnieuw opbouwt waardoor de vorige waarden verloren gaan.
Kan je een voorbeeld geven van hoe jou tabellen eruit zien? Ook raad ik aan om geen SELECT * te gebruiken, maar elk veld in je query te zetten... Geeft je veel meer duidelijkheid wat er aanwezig is in je tabellen (ook als je over een jaar weer naar je code gaat kijken).
Je hebt in ieder geval 3 tabellen nodig.
1) Vragen
2) Antwoorden
3) Stemmen
Tabel 3 is een koppeltabel, waar enkel en alleen getallen in staan (en misschien een IP of gebruiker ID). Deze mis ik bij jou.
Nu kom ik blijkbaar in een oneindige loop als ik getVraag() uitvoer, ik heb verscheidene keren het gehele script volledig doorlopen op fouten maar ik snap echt niet hoe dit zou kunnen? mySQL table ziet er nog steeds hetzelfde uit; http://plaatscode.be/140661/
Nu kom ik blijkbaar in een oneindige loop als ik getVraag() uitvoer, ik heb verscheidene keren het gehele script volledig doorlopen op fouten maar ik snap echt niet hoe dit zou kunnen? mySQL table ziet er nog steeds hetzelfde uit; http://plaatscode.be/140661/
Met deze code kan je ook niet een vraag of iets dergelijks opvragen.
Geeft $this->mysql->fetch_assoc($query) wel een goed resultaat?
[..quote..]Met deze code kan je ook niet een vraag of iets dergelijks opvragen.
Geeft $this->mysql->fetch_assoc($query) wel een goed resultaat?
Blijkbaar niet.. Heb 't met 'old style' sql uitvoering gedaan en dan lukte het.. Dacht ik ook eens een handige mySQL class gemaakt te hebben. xD Nogmaals, bedankt voor je hulp!
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.