1 2 3 4 5 6 7 | SELECT * FROM dkm_disco_tracks INNER JOIN dkm_disco_albums ON dkm_disco_tracks.album = dkm_disco_albums.id ORDER BY dkm_disco_tracks.album, dkm_disco_tracks.track ") or die (mysql_error()); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | $array = Array // Aray die alle albums bevat ( 'Blackout' => Array // Array die alle songs van een album bevat ( 'Walk Away', 'Worker Song', 'The Outcast', 'Black Velvet Band', 'Gonna Be A Blackout', 'World Full of Hate' ), 'Sing Loud, Sing Proud' => Array // Array die alle songs van een album bevat ( 'For Boston', 'The Legend of Finn MacCumhail', 'Which Side Are You On?', 'The Rocky Road To Dublin', 'Heroes from Our Past', ) ); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $prevAlbum = -1; while($row = mysql_fetch_array($query)) { if($prevAlbum != $row['album']) { // Album titel weergeven if($prevAlbum != -1) echo "</ul>"; echo "<li><a href="#">$row[titel]</a></li><ul>"; $prevAlbum = $row['album']; } echo "<li>$row[track_titel]</li>"; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <li><a href="#">ALBUM TITLE 1</a> <ul> <li>TRACK TITEL 1</li> <li>TRACk TITEL 2</li> <li>TRACk TITEL 3</li> <li>...</li> </ul> </li> <li><a href="#">ALBUM TITLE 2</a> <ul> <li>TRACK TITEL 1</li> <li>TRACk TITEL 2</li> <li>TRACk TITEL 3</li> <li>...</li> </ul> </li> </ul> |
1 2 3 4 5 6 7 8 9 | while (loop over rows) { if (album id gewijzigd) { nieuw item aan album array toevoegen } track titel toevoegen } |
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | while($row = mysql_fetch_array($query)) { $vars[$row['album']][] = $row[track_titel]; } foreach ($vars as $key => $value){ echo $key."<ul>"; if (is_array($value)){ foreach ($value as $value2){ echo "<li>".$value2."</li>"; } } echo "</ul>"; } ?> |
Je wilt open vragen gaan vergelijken met antwoorden uit database?quote:Op dinsdag 14 november 2006 17:06 schreef USAF het volgende:
Vraagje
Ik ben bezig met een systeem die per dag een aantal vragen weergeeft uit een database. In een textfield/textarea kunnen mensen deze vragen beantwoorden.
Nu wil ik dat de verschillende antwoorden (die in een andere tabel van de db staan) worden vergeleken met het ingevulde antwoord. Want als het goed is krijgt deze user een x-aantal punten.
Ik zat al te denken om de antwoorden in een array te zetten, maar hoe ik deze vervolgens vergelijk met het ingevulde antwoord....
Iemand een idee?
Als hij ernaast een expertsysteem opzet is dat goed mogelijk.quote:Op dinsdag 14 november 2006 17:24 schreef Swetsenegger het volgende:
[..]
Je wilt open vragen gaan vergelijken met antwoorden uit database?
Moet te doen zijn, tot op zekere hoogte.quote:Op dinsdag 14 november 2006 17:24 schreef Swetsenegger het volgende:
[..]
Je wilt open vragen gaan vergelijken met antwoorden uit database?
Zou een probleem op kunnen leveren wanneer je $vars[$row['album']] niet eerst declareert als array.quote:Op dinsdag 14 november 2006 09:16 schreef Desdinova het volgende:
ik weet niet of je er al uit bent, maar misschien is dit wat
[ code verwijderd ]
niet getest overigens. ook niet gechecked op parse errors
PHLIPS is een PHP extentie voor CLIPS, waarmee je expertsystemen kan bouwen.quote:Op dinsdag 14 november 2006 18:37 schreef Swetsenegger het volgende:
Ik zeg toch niet dat het niet gaat, ik wil allen duidelijkheid
Overigens zou IK niet weten hoe je dat technisch op moet lossen. Misschien met een soort thesaurus ofzo.
Interessantquote:Op dinsdag 14 november 2006 18:41 schreef papernote het volgende:
[..]
PHLIPS is een PHP extentie voor CLIPS, waarmee je expertsystemen kan bouwen.
Expertsystemen kunnen reageren op natuurlijke taal en daarmee zou je dan zoiets kunnen implementeren. Zo heb ik zelf eens een helpdesk gemaakt in CLIPS, die reageerde op vragen als: "Mijn XboX is stuk, wat moet ik doen?".
Deze vraag werd dan ingelezen door het systeem en gefilterd op bepaalde woorden. Er wordt gezocht naar een bekend onderwerp (XboX) en een probleem (stuk) en of er een negatie (bijv. niet) in voor komt. Aan de hand daarvan worden er dan in het programma bepaalde regels geactiveerd die een vervolgvraag stellen.
Overigens heb ik dat direct in CLIPS geschreven en geen gebruik gemaakt van PHLIPS, maar middels PHLIPS zou je dat dus ook aan PHP kunnen koppelen.
Die vraag is al beantwoord. Wanneer je met full text antwoorden werkt zal je met een expert systeem moeten werken, zie de vorige pagina.quote:Op dinsdag 14 november 2006 20:39 schreef USAF het volgende:
Hopelijk iets duidelijker dit keer
Ik heb dus een tabel 'vragen' en een tabel 'antwoorden', tabel antwoorden is gekoppeld aan tabel vragen door vraagid. Tevens heeft de tabel een veld met dag, maand en jaar zodat je weet welke vragen op welke dag getoond moeten worden.
Op de pagina's waar de vragen staan, staan tekstvelden om de antwoorden voor de vragen in te vullen. De naam van het tekstveld is gelijk aan het id van de vraag.
Als het formulier vervolgens gesubmit wordt, wil ik dat per vraag, de ingevulde waarde vergeleken wordt met de (mogelijk meerdere) row's in de tabel 'antwoorden'.
Mensen met toegang tot het back-end kunnen later nog altijd antwoorden waar bijv. een spellingsfout in zit goedkeuren, daar zit het probleem dus niet in.
Maar het probleem voor mij is, hoe vergelijk ik de ingevulde waarde met de mogelijke antwoorden in de database![]()
Gewoon zonder transparency opslaan.quote:Op dinsdag 14 november 2006 21:37 schreef Skorpija het volgende:
Weet iemand het volgende:
Ik wil transparency verwijderen van een gif plaatje en er wit van maken.
Maar ik kan nergens vinden hoe dit moet. Alle voorbeelden zijn juist om een bepaalde kleur transparant te maken...
quote:Op dinsdag 14 november 2006 21:40 schreef Swetsenegger het volgende:
[..]
Gewoon zonder transparency opslaan.
Ah... niet denk ik...quote:Op dinsdag 14 november 2006 21:42 schreef Skorpija het volgende:
[..]Ik heb m'n post nog even ge-edit.
Ik bedoelde, hoe maak ik via php m.b.v. de GD Library een transparante kleur wit..
1 2 3 | $ret = preg_replace("#[url=http://imageshack.us][img=([w:%&/.;\#-=?[]+] echo $ret; |
Ik denk dat een expert-systeem te geavanceerd is voor dit probleem. Je zou dit wellicht als volgt kunnen aanpakken:quote:Op dinsdag 14 november 2006 20:41 schreef Swetsenegger het volgende:
[..]
Die vraag is al beantwoord. Wanneer je met full text antwoorden werkt zal je met een expert systeem moeten werken, zie de vorige pagina.
Een eenvoudiger alternatief is natuurlijk multiple-choice.
De tabellen:quote:Q: Who wrote: "Bring me my bow of burning gold: Bring me my arrows of desire.." ?
A: William Blake (1757-1827, English poet, painter and mystic.)
1 2 3 | 1 Who wrote: "Bring me my bo... 2 Bla bla bla |
1 2 3 4 5 | 1 blake 1 william 1 1827 2 blob |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $punten = 0; $answer = strtolower($_POST["answer"]); if(strstr("blake", $answer)) { echo("CORRECT"); $punten += 1; if(strstr("william", $answer)) { $punten += 1; } //enz... } else { echo("FOUT"); } ?> |
Het lijkt me redelijk omslachtig, maar het is te doen.quote:Op dinsdag 14 november 2006 22:03 schreef papernote het volgende:
[..]
Ik denk dat een expert-systeem te geavanceerd is voor dit probleem. Je zou dit wellicht als volgt kunnen aanpakken:
Je neemt een tabel met vragen en een tabel met antwoorden die je aan elkaar linkt middels een ID of zoiets dergelijks. Vervolgens stel je de vraag en komt het antwoord binnen via de POST. Dan zou je het antwoord kunnen scannen op voorkomens van bepaalde woorden die je in het antwoord verwacht. Deze woorden staan dan natuurlijk in je antwoorden-tabel.
Voorbeeld uit een random quiz:
[..]
De tabellen:
Vragen
[ code verwijderd ]
Antwoorden
[ code verwijderd ]
Middels PHP kan je simpel controleren of het woord "Blake" voorkomt in het antwoord. Verder zou je dan extra punten kunnen geven voor het voorkomen van "William" en ook nog voor de jaartallen.
[ code verwijderd ]
Het hangt natuurlijk wel af van het soort vragen dat je gaat stellen, maar op deze manier zou je wellicht een aardig eindje kunnen komen.
Ik zou graag een uitleg zien inderdaadquote:Als iemand overigens interesse heeft in expertsystemen dan kan ik daar wel eens een topic over openen met een korte tutorial?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |