[PHP/MySQL] Filteren voorkomende weeknr's

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een systeem gemaakt waarin wedstrijden opgenomen worden. Omdat het systeem uitslagen en programma's moet tonen moet er dus wedstrijden uit de toekomst en uit t verleden opgevraagd kunnen worden. De volgende situatie heb ik:

Pulldown met daarin overzicht seizoenen. Als je een keuze maakt wordt het seizoenID gegeven. Hierna moet er een tweede pulldown gevuld worden. Hierin moeten de weeknr's verschijnen van de weken waarin een wedstrijd gespeeld is. Aangezien een wedstrijd op elke dag van de week gespeeld kan worden wil ik ze sorteren op weeknr. Ik gebruik de standaard PHP weeknumering dus ma t/m zo. Datums van wedstrijden zijn opgenomen in het UNIX timestamp formaat.

Er even vanuit gaande dat er wekelijk zo'n 50 wedstrijden gespeeld worden wil ik op een of andere manier alle weeknrs waarin een wedstrijd gespeeld is of nog gaat worden uit een bepaalde seizoen tonen.

Kan iemand me helpen.

Acties:
  • 0 Henk 'm!

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
wat heb je allemaal al geprobeerd :?

"Google is je vriend"
[google=php date week]

[google=mysql week date]

daarnaast zou je ook de search van GoT zelf eens kunnen bezoeken, kan me niet indenken dat dit nog nooit voorbij is gekomen

suc6!

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


Acties:
  • 0 Henk 'm!

  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

uit de DATE() functie van PHP kun je het weeknummer van een datum halen, je kunt daarvoor deze timestamps uit de database halen met MySQL's DATE_FORMAT(date,format)

deze iets van "select date_format(...) where wedstrijd=wedstrijd"

en dan de weeknummers uit het resultaat halen met de functie date()

edit: nou weet ik alleen niet zeker of het zo gaat met Unix timestamps, maar da's makkelijk te converteren

[ Voor 18% gewijzigd door X-Lars op 02-02-2004 19:53 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja ik heb t gevonden:

SELECT DISTINCT DATE_FORMAT(FROM_UNIXTIME(wedstrijd.timestamp),'%v') AS weeknr FROM wedstrijd, ts WHERE wedstrijd.tsID = ts.tsID AND ts.seizoenID = $seizoenID ORDER BY timestamp DESC

Werkt perfect. Alleen nu t volgende probleem. Ik heb nu dus het weeknr. A.d.h.v. dit week nr moet ik de maandag van die week hebben. Daarbij tel ik dan 7 dagen op en daar rolt weer een query uit met een BETWEEN date1 en date2.

Hoe kan ik de maandag berekenen a.d.h.v. een weeknr?

Acties:
  • 0 Henk 'm!

  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

daar heeft PHP ook een ideale functie voor: find_first_monday_after_this_weeks_monday()

maar ff serieus: klik voor de gein eens op twee van mijn signature-links ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben al een stuk verder. Het ophalen van die weken gaat nu goed. Ik heb nu de volgende query:

SELECT
DISTINCT DATE_FORMAT( FROM_UNIXTIME( wedstrijd.timestamp ) , '%v' ) AS weeknr,
DATE_FORMAT( FROM_UNIXTIME( wedstrijd.timestamp ) , '%w' ) AS daynr,
wedstrijd.timestamp AS timestamp
FROM wedstrijd, ts
WHERE wedstrijd.tsID = ts.tsID AND ts.seizoenID = 1
ORDER BY timestamp DESC
LIMIT 0, 30


Nu krijg ik bijvoorbeeld:

weeknr - daynr - timestamp
05 - 0 - 10002300
05 - 0 - 10005000
05 - 0 - 10007500


Ik wil dat ie de weeknr's DISTINCT pakt... dus dat de weeknr's maar 1 keer voorkomen. Wat doe ik verkeerd. Nu worden de timestamps gefilterd.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Begreep inmiddels dat een DISTINCT alleen op een complete SELECT werkt en niet op een bepaald onderdeel ervan.
Daarbij werd genoemd dat een UNION gebruikt moest worden. Wie kan me daar mee helpen?

Acties:
  • 0 Henk 'm!

  • cavey
  • Registratie: Augustus 2000
  • Laatst online: 29-05 01:29
union? dat is toch meer om twee tabellen bij mekaar te frotten die niet dezelfde naamgeving hebben, maar wel zelfde 'kolom' resultaten opleveren? Nagoe, vast een foute omschrijving.

Ik denk dat je moet gaan werken met group by.......heb je die timestamps uberhaupt nodig? als je toch alleen de weken wilt hebben...
Pagina: 1