login  Naam:   Wachtwoord: 
Registreer je!
 Forum

voetbal competitiestand (Opgelost)

Offline markla - 14/08/2010 22:03
Avatar van marklaPHP interesse Omdat ik niet kan vinden wat ik nodig heb ben ik zelf aan het ontwerpen geslagen.

Ik wil eigenlijk en eenvoudige database hebben een scripts die de competitiestand berekent.

dit is de database
Plaatscode: 139823

dit het wedstrijd overzicht van gespeelde wedstrijden
  1. SELECT
  2. s.cs_season_id,
  3. s.cs_season_name,
  4. DATE_FORMAT(w.cs_wedstrijden_datum, '%d-%m-%Y') AS Game_Date_short,
  5. DATE_FORMAT(w.cs_wedstrijden_datum, '%H:%i') AS GameTime,
  6. w.cs_wedstrijden_comp_id,
  7. w.cs_wedstrijden_comp_id,
  8. c.cd_competitie_naam,
  9. t1.cs_team_id,
  10. t1.cs_teamname_long,
  11. t2.cs_team_id,
  12. t2.cs_teamname_long,
  13. w.cs_wedstrijden_doelthuis,
  14. w.cs_wedstrijden_doeluit
  15.  
  16. FROM
  17. cs_wedstrijden w,
  18. cs_seasons s,
  19. cs_competitie c,
  20. cs_teams t1,
  21. cs_teams t2
  22. WHERE
  23. w.cs_wedstrijd_gespeeld='Y'
  24. AND
  25. w.cs_season_id = s.cs_season_id
  26. AND
  27. w.cs_wedstrijden_comp_id = c.cs_competitie_id
  28. AND
  29. w.cs_wedstrijden_team_id_thuis = t1.cs_team_id
  30. AND
  31. w.cs_wedstrijden_team_id_uit = t2.cs_team_id;


graag zou ik dergelijk http://teletekst.nos.nl/gif/images/819-01.gif overzicht creëren

dit is mijn begin:
  1. SELECT
  2. t.cs_team_id,
  3. t.cs_teamname_long,
  4. w.cs_wedstrijden_team_id_thuis,
  5. IF((w.cs_wedstrijden_doelthuis>w.cs_wedstrijden_doeluit),1,0) AS thuis_winst,
  6. IF((w.cs_wedstrijden_doelthuis=w.cs_wedstrijden_doeluit),1,0) AS thuis_gelijk,
  7. IF((w.cs_wedstrijden_doelthuis<w.cs_wedstrijden_doeluit),1,0) AS thuis_verlies,
  8. w.cs_wedstrijden_doelthuis,
  9. w.cs_wedstrijden_doeluit
  10.  
  11. FROM
  12. cs_teams t,
  13. cs_wedstrijden w
  14. WHERE
  15. t.cs_team_id= w.cs_wedstrijden_team_id_thuis
  16. AND
  17. w.cs_wedstrijd_gespeeld='Y'
  18. ORDER BY thuis_winst DESC;

9 antwoorden

Gesponsorde links
Offline marten - 14/08/2010 22:23
Avatar van marten Beheerder En wat is nou precies je vraag?
Offline markla - 14/08/2010 22:25
Avatar van markla PHP interesse graag zou ik dergelijk http://teletekst.nos.nl/gif/images/819-01.gif overzicht creëren
Offline marten - 14/08/2010 23:04
Avatar van marten Beheerder En wat gaat er niet goed? Wat heb je al geprobeerd? Wat doen bovenstaande queries?
Offline markla - 14/08/2010 23:19 (laatste wijziging 14/08/2010 23:37)
Avatar van markla PHP interesse bovenstaande queries doen wat ik er van verwacht. maar ik zou graag een de query willen hebben die de stand berekent.
Maar daarbij loop ik tegen mijn beperkte kennis van SQL mogelijkheden aan.

Op basis van de wedstrijd gegevens is volgens mij wel en querie te bouwen, die bepaald of een team een (of meerdere) wedstrijd heeft wedstrijd gespeeld.
En zo ja of basis van het verschil in doelpunten winst, gelijk, of verlies telt. daarbij het doelsaldo berekent en de boel sorteert.


maar ik ben bang dat dat een hele grote en ingewikkelde wordt

Daarom ben ik ook al me de subtable stand begonnen .

Maar wellicht dat er hier wat mensen op het forum zijn die meer kennis van SQL hebben en mij een end op weg kunnen helpen of tips kunnen geven.

updateje

Kan het dat als je in de table cs_wedstrijden een record wijzigt er automatisch iets in de table cs_stand wordt gewijzigd of toegevoegd?
Offline marten - 15/08/2010 09:57
Avatar van marten Beheerder Ik ga je db even importeren en kijken wat de output van je queries is.
Offline markla - 15/08/2010 10:29
Avatar van markla PHP interesse alvast bedankt voor het mee denken

Ondertussen heb ik de querie:

  1. SELECT
  2. c.cs_stand_team_id,
  3. t.cs_teamname_long,
  4. SUM(c.cs_stand_winst) AS cs_winst,
  5. SUM(c.cs_stand_gelijk) AS cs_gelijk,
  6. SUM(c.cs_stand_verlies) AS cs_verlies,
  7. SUM(c.cs_stand_voor) AS score_voor,
  8. SUM(c.cs_stand_tegen) AS score_tegen,
  9. SUM(c.cs_stand_voor- c.cs_stand_tegen) AS doelsaldo
  10. FROM
  11. cs_stand c,
  12. cs_teams t
  13. WHERE
  14. c.cs_stand_team_id = t.cs_team_id
  15. GROUP BY
  16. c.cs_stand_team_id
  17. ORDER BY
  18. cs_winst DESC,
  19. cs_gelijk DESC,
  20. cs_verlies DESC,
  21. c.cs_stand_voor DESC,
  22. doelsaldo DESC;


die doe precies wat ik wil......maar doet dat op de table comp_stand.

Ik zou graag willen weten hoe ik , als ik de tabl wedstrijden bij werk ook gelijk een update van de table comp_stand kan bij werken


Offline marten - 15/08/2010 13:10
Avatar van marten Beheerder Dat kan met ON UPDATE:

http://dev.mysq...aints.html
Offline WouterPSV - 15/08/2010 14:46
Avatar van WouterPSV Lid misschien heb je hier ook wat aan..

script
Offline markla - 15/08/2010 21:26 (laatste wijziging 15/08/2010 21:32)
Avatar van markla PHP interesse
marten schreef:
Dat kan met ON UPDATE:
http://dev.mysq...aints.html


Ga ik -eens- uitzoeken. maar klink voor mij zeer in gewikkeld. (ligt wederom aan mijn beperkte kennis van mysql)

WouterPSV schreef:
misschien heb je hier ook wat aan..

script


Dit script ken ik , maar dat is sterk verouderde en men gebruikt geen database maar files op de data op te slaan.  

ik zou in eerste instantie graag twee scripts tot één script willen samenvoegen




  1. SELECT
  2. c.cs_stand_team_id,
  3. t.cs_teamname_long AS team,
  4. SUM(c.cs_stand_winst+ c.cs_stand_gelijk+ c.cs_stand_verlies) AS aantalwedstrijden,
  5. SUM(c.cs_stand_winst) AS cs_winst,
  6. SUM(c.cs_stand_gelijk) AS cs_gelijk,
  7. SUM(c.cs_stand_verlies) AS cs_verlies,
  8. SUM(c.cs_stand_voor) AS score_voor,
  9. SUM(c.cs_stand_tegen) AS score_tegen,
  10. SUM(c.cs_stand_voor- c.cs_stand_tegen) AS doelsaldo
  11.  
  12. FROM
  13. cs_stand c,
  14. cs_teams t
  15. WHERE
  16. c.cs_stand_team_id = t.cs_team_id
  17. GROUP BY
  18. c.cs_stand_team_id
  19. ORDER BY
  20. cs_winst DESC,
  21. cs_gelijk DESC,
  22. cs_verlies DESC,
  23. c.cs_stand_voor DESC,
  24. doelsaldo DESC,
  25. t.cs_teamname_long


met

  1. SELECT
  2. b.cs_strafpunten_season_id,
  3. b.cs_strafpunten_comp_id,
  4. b.cs_strafpunten_team_id,
  5. b.cs_strafpunten
  6. FROM
  7. cs_strafpunten b;


Het eerste script haalt de standaard "stand" uit de database de tweede bekijkt of er niet een team is met strafpunten (zoals NAC Breda)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.183s