login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Join/Koppelen voor voetbaluitslagen

Offline Ruultje - 19/11/2009 20:38 (laatste wijziging 19/11/2009 20:39)
Avatar van RuultjeNieuw lid Ik heb een probleem. Ik ben nu bezig met een testsite over voetbal. Hierin komen o.a. uitslagen en wedstrijdstatistieken. Ik heb een tabel teams en een tabel wedstrijden. In de tabel teams komen alle clubs. Bij wedstrijden komen de wedstrijden. Hierin worden twee teams gekoppeld (thuis- en uitteam). Nu zit ik hier mee vast wat betreft het joinen. Ik gebruik nu twee queries om de thuis- en uitclub te scheiden. Maar dat werkt vrij lastig. Hoe kan ik er voor zorgen dat hij de thuisclub en uitclub leest in één query? In de wedstrijden tabel wordt de club gekoppeld middels de teamID.

Deze twee scheiden te thuis- en uitclub. Maar wanneer ik ze beide in een query stop krijg ik een foutmelding.

  1. LEFT JOIN teams ON teams.team_id = wedstrijden.thuisclub
  2. LEFT JOIN teams ON teams.team_id = wedstrijden.uitclub


Hier de hele code
  1. SELECT *, DATE_FORMAT(aanvang, '%d %M %Y') AS datum, DATE_FORMAT(aanvang, '%d %M %Y %H:%i') AS aanvang FROM wedstrijden
  2. LEFT JOIN teams ON teams.team_id = wedstrijden.thuisclub
  3. LEFT JOIN competities ON competities.competitie_id = wedstrijden.competitie
  4. LEFT JOIN seizoenen ON seizoenen.seizoen_id = wedstrijden.seizoen
  5. LEFT JOIN stadions ON stadions.stadion_id = wedstrijden.stadion
  6. WHERE aanvang > NOW() ORDER BY aanvang ASC LIMIT 1


Ik heb deze query dus twee keer op dezelfde pagina. Met als enige verschil dat bij de tweede niet thuis maar uitclub staat bij wedstrijden.

Deze laat de komende wedstrijd zien van een voetbalclub.

5 antwoorden

Gesponsorde links
Offline avdg - 19/11/2009 23:17
Avatar van avdg PHP gevorderde Bedoel je zoiets als (snelle code):

  1. WHERE teams.team_id = {id_thuis} OR teams.team_id = {id_bezoekers}
Offline Ruultje - 19/11/2009 23:42 (laatste wijziging 19/11/2009 23:42)
Avatar van Ruultje Nieuw lid Nee, helpt in ieder geval ook niet.

Ik zet hier de tabelstructuur van beide tabellen.

  1. CREATE TABLE teams (
  2. team_id int(11) NOT NULL AUTO_INCREMENT,
  3. clubnaam varchar(100) NOT NULL,
  4. afkorting varchar(5) NOT NULL,
  5. opgericht date NOT NULL,
  6. straat varchar(150) NOT NULL,
  7. nummer int(4) NOT NULL,
  8. postcode varchar(7) NOT NULL,
  9. plaats varchar(150) NOT NULL,
  10. land int(11) NOT NULL,
  11. website varchar(255) NOT NULL,
  12. email varchar(100) NOT NULL,
  13. id_stadion int(11) NOT NULL,
  14. logo_klein varchar(100) NOT NULL,
  15. logo_groot varchar(100) NOT NULL,
  16. PRIMARY KEY (team_id)
  17. ) ENGINE=InnoDB DEFAULT CHARSET=latin1
;

  1. CREATE TABLE `wedstrijden` (
  2. `wedstrijd_id` int(11) NOT NULL AUTO_INCREMENT,
  3. `thuisclub` int(11) NOT NULL,
  4. `uitclub` int(11) NOT NULL,
  5. `aanvang` datetime NOT NULL,
  6. `afgelopen` datetime NOT NULL,
  7. `seizoen` int(11) NOT NULL,
  8. `competitie` int(11) NOT NULL,
  9. `stadion` int(11) NOT NULL,
  10. `thuisscore` int(5) NOT NULL,
  11. `uitscore` int(5) NOT NULL,
  12. PRIMARY KEY (`wedstrijd_id`)
  13. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;


Thuisclub en uitclub wordt daarin verbonden aan team_id.

Wanneer ik in de code van de php dan zet $row['thuisclub'] vs. $row['uitclub'] dan zet hij zowel bij de thuis als uitclub dezelfde clubnaam (altijd de thuisclub).

Ik heb nog wat rondgezocht maar ben nog niet tot een oplossing gekomen.
Offline keesgerbers - 05/09/2011 13:14 (laatste wijziging 05/09/2011 13:15)
Avatar van keesgerbers Lid ik weet dat dit een ouder topic maar ik heb letterlijk hetzelfde probleem, dus kan ik deze net zo goed even omhoog bumpen dan dat ik een heel nieuw topic start voor hetzelfde,

ik heb ook een wedstrijd tabel met daarin 2 team id's

deze moet ik dan ook koppelen aan een tabel teams waar alle teams in staan onder een uniek id, inclusief de thuis club.

nu had ik zelf de volgende query in elkaar gezet:
  1. SELECT *
  2. FROM `wedstrijden`
  3. INNER JOIN `teams`
  4. ON wedstrijd.id_tm1=team.id


maar deze werkte niet, daarna wist iemand mij te vertellen dat dit heel anders moest en gaf mij een query waar ik al helemaal geen wijs uit kom:

  1. SELECT wedstrijden.id_tm1, wedstrijden.id_tm2, te.name AS team1_name, b.name AS team2_name FROM wedstrijden AS w LEFT OUTER JOIN teams AS a ON w.tm_id1 = a.id LEFT OUTER JOIN teams AS b ON w.™_id2 = b.id


kan iemand mij uitleggen hoe ik deze laatste query kan aanpassen en of hij uberhaupt gaat werken?

want ik heb via w3schools geprobeert de query te veranderen maar kom er nog niet uit.
de bedoeling is dus om
wedstrijd.id_tm1 aan een team.id te koppelen maar ook wedstrijd.id_tm2
Offline WouterJ - 05/09/2011 14:49
Avatar van WouterJ HTML gevorderde Je kan hier toch beter een eigen topic voor aanmaken. Dat houd de overzicht er een beetje in.
Offline keesgerbers - 05/09/2011 15:18
Avatar van keesgerbers Lid dan kan dit topic dicht, moet ik dan aangeven dan Waldio het goede antwoord heeft gegeven?
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.179s