login  Naam:   Wachtwoord: 
Registreer je!
 Forum

2 dagen datums weergeven

Offline zwobbel - 20/02/2009 13:45
Avatar van zwobbelPHP gevorderde Hallo

Met onze rugby site zouden we graag willen kijken wie er de volgende training niet komt trainen als iemand niet kan komen trainen melden ze dit op de site en deze data word opgeslagen in de database als time().

Wij trainen 2 dagen in de week deze zijn dinsdag en donderdag.
Graag wil ik een scriptje dat telkens toont wie er de volgende training niet kan komen trainen. Dus het is vandaag vrijdag dan zou deze moette zegge personen x komen dinsdag niet trainen en x donderdag niet. als het nu woensdag is moet hij dit tonen van donderdag en de dinsdag er op.

Hoe doe ik dit ongeveer?
Ik beschik nu over een functie die de huidige dagen datums opvraagt per week en niet kijkt naar een verstreken dag:


  1. <?
  2. function getDayWeek($para) {
  3. $nArray = array();
  4. // Waardes van hoeveel dagen dinsdag van deze dag zit.
  5. $array = array("Sun"=>2,"Mon"=>1,"Tue"=>0,"Wed"=>-1,"Thu"=>-2,"Fri"=>-3,"Sat"=>-4);
  6. // Deze dag
  7. $nu = date("D");
  8. // Aantal dagen verschil
  9. $aantal_verschil = $array[$nu];
  10. // Tijd van 1 dag
  11. $time_1_dag = 60*60*24;
  12. // Verschil in tijd
  13. $verschil = $time_1_dag*$aantal_verschil;
  14.  
  15. foreach($para as $value)
  16. {
  17. $nArray[] = date("d-m-Y",time()+$verschil+($value*$time_1_dag));
  18. }
  19.  
  20. // Waardes returnen
  21. return $nArray;
  22. }
  23. ?>

3 antwoorden

Gesponsorde links
Offline Rik - 20/02/2009 16:41
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Iets als:
  1. SELECT naam, DAYOFWEEK(tijd) AS dag FROM afwezigen WHERE tijd > UNIX_TIMESTAMP() AND DAYOFWEEK(tijd) IN (3, 5) LIMIT 1,2
Offline zwobbel - 20/02/2009 18:05 (laatste wijziging 20/02/2009 18:16)
Avatar van zwobbel PHP gevorderde Ik krijg geen data uit mijn databank dit is mijn db opbouw:

Dit is de sql
  1. CREATE TABLE IF NOT EXISTS `afwezigheid` (
  2. `AfwezigheidID` int(11) NOT NULL AUTO_INCREMENT,
  3. `AccountID` varchar(30) NOT NULL,
  4. `AfwezigheidDatum` varchar(30) NOT NULL,
  5. `AfwezigheidType` varchar(30) NOT NULL,
  6. `AfwezigheidReden` text NOT NULL,
  7. PRIMARY KEY (`AfwezigheidID`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
  1. $sql = "
  2. SELECT AccountID, DAYOFWEEK(AfwezigheidDatum) AS dag
  3. FROM afwezigheid WHERE AfwezigheidDatum > UNIX_TIMESTAMP()
  4. AND DAYOFWEEK(AfwezigheidDatum) IN (3, 5) LIMIT 1,2
  5. ";
Offline Rik - 20/02/2009 21:03
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ik zie nu dat in ieder geval dat stukje LIMIT weg mag. Je moet natuurlijk niet maar 2 records selecteren, maar van maximaal 2 volgende dagen.

Nog even kijken hoe het dan wel moet...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.18s