Met een aantal companen heb ik het idee opgevat om een popkwis in elkaar te draaien.
Dat gaat al lekker.
Nu zit ik met 1 probleem.
Ik heb reeds:
user systeem, om mee te doen.
quizzen...
enz.
Ik ben geen kei in php en heb de quiz zo goed en zo kwaad als het gaat in elkaar geplakt en geschreven. Omdat ik hier veel heb geleerd, leek het me leuk om te kijken hoe jullie een pokwis in elkaar zetten.
Ik ben nu zover dat ik een quiz aan kan maken, vragen erbij zet, vervolgens uitlees en weer in de datrabase stop, bij de oplossingen!
De goede antwoorden haal ik uit de vragen tabel, de oplossing zet ik er tegenover.
Nu ben ik op zoek naar een goede mogelijkheden om de scores bij te houden.
We hebben de quiz nu aangepast. Alle tijden worden ook opgeslagen in de database en kunnen bepalend zijn bij gelijk spel.
Nu willen we graag dat de weeknummers beschikbaar komen.
Er is nu sprake van een vast quiz id.
De id bepaald welke quiz wordt getoont.
We willen dat koppelen aan een weeknummer, iedere twee weken een quiz.
Ik heb verschillende kalenders e.d. bekeken, maar kom er niet uit hoe je nu psies een weeknummer ophaalt.
Onderstaande SQL geeft het weeknummer uitgaande van dat maandag de 1e dag van de week is. Door '%u' te wijzigen in '%U' (hoofdletter) gaat MySQL ervan uit dat zondag de 1e dag van de week is. Aan jou dus de keuze.
SELECT DATE_FORMAT(datum,'%u') FROM tabel
%U Week (00..53), where Sunday is the first day of the week
%u Week (00..53), where Monday is the first day of the week
De tijd wordt niet in een datetime veld opgeslagen.
Het gaat om de tijdsduur (zie boven). Ik sla de tijdsduur gewoon op in varchar en reken vervolgens uit hoelang iemand over de quiz gedaan heeft.
Het opslaan van de datum snap ik, ik sla de datum dat gespeeld wordt op in de database met now().
dus wil ik zoiets als :
als now() in week twee valt, laat dan quiz 2 zien,
als now() in week drie valt, laat dan quiz 2 zien,
als now() in week 4 valt, laat dan quiz 3 zien enz enz.
Hoe doek dat?
Wat betreft die nummers van de quizen:
- Als je 2 jaar bezig bent, dan kom je op quiz 104 uit (2x52 weken -> 52 quizen)
- Zet in je tabel waarin je je quizid/naam enzo opslaat een veld met daarin ook een datum.
Vervolgens kan je met onderstaande vergelijken welke quiz er moet worden opgehaald.
SELECT quiz FROM tabel WHERE DATE_FORMAT(datum,'%u') = DATE_FORMAT(NOW(),'%u')
[edit]
Wat je doet met het opslaan van je tijdsduur, in wat voor format sla je dat op? Volgens mij is dat een unix timestamp (aantal seconden sinds Unix Epoch (January 1 1970 00:00:00 GMT) daarvoor kan je beter een timestamp veld gebruiken!
Ik sla het op als hate getal wat weergegeven wordt door de code die thijs hier opgaf.
De pagina geeft de begin en eindtijd op. Het verschil zet - ie in de database.
werkt prima en is uitstekend om te gebruiken bij gelijk spel in punten.
wat is het voordeel van jou methode?
en betr. de weeknrs
Ik heb een tabel met
id
naam
toegevoegd
bijgewerkt
daar worden de quizzen in opgeslagen en krijgen een id. Vervolgens kan ik er vragen aan toevoegen (tabel vragen) en antwoorden (tabel oplossingen)
we werken straks met meer mensen aan de vragen. dus is het handig dat in de quizzen ook naam toevoeger/bijwerker opgeslagen kan worden en wanneer dat gebeurd.
ik wilde het weeknummer daarin ook opslaan, gewoon door het cms ingegeven en het verolgens vergelijken met het opgevraagde weeknr. en dan zo de juiste quiz weergeven, ik kan dus nog een datum toevoegen, bv datum online en dan die gebruiken voor het weeknr?