Ik heb een wedstrijdprogramma voor 2 teams de wedstrijden selecteer ik met de volgende sql query

<?php

include("connect.php");

$sql= 'SELECT * FROM programmau18
UNION SELECT * FROM programmaheren
ORDER BY datum asc';

$res= mysql_query($sql) or die ("FOUT:" . mysql_error());

?>

Nu heb echo ik alle gegvens in divjes die uitgelijnt zijn naast elkaar.

Team A staat links en Team B staat rechts.

Nu pakt hij elke keer de hele container div en print die voor Team A helemaal met een lege rechter kolom.

en daaronder gooit hij de gegevens van Team B met een nieuwe container. terwijl dit eigenlijk naast Team A kolom moest staan.

Voorbeeld: http://www.pekelsharks.nl/wedstrijdprogramma.php
Edwin van der Veen op 25/08/2013 15:31:02

Ik kom er niet uit, het schijnt dat ik COALESCE niet eens mag gebruiken van dreamweaver. en krijg ook een foutmelding Parse error: syntax error, unexpected T_STRING

Ik geef alleen de query, je moet dat in PHP natuurlijk nog wel in een string verpakken.

@Ger
moet ik het als volgt lezen ?

SELECT datum //selecteerd de datum

FROM (SELECT DISTINCT FROM wedstrijden) //Geeft aan welke tabel en maakt de datum los van wedstrijden.

LEFT JOIN wedstrijden

ON datum=datum AND teamid=1 //vergelijkt de datum bij het teamid

LEFT JOIN wedstrijden

ON datum=datum AND teamid=2 //vergelijkt de datum bij het teamid
Edwin,

ja dan moet je alle teams ook van andere clubs aan de tabel teams toevoegen.

Ik kan me voorstellen dat je daar niet op zit te wachten dus kun je dan niet gewoon de korte codes aanhouden zoals die normaal ook gebruikt worden en dan een tabel clubs maken?

alsnog kun je dan voor de eigen club een tabel teams aan maken.

stel jouw club is FC KNUDDE en heeft twee teams C1 en C2.

dan krijg je jouw indeling:

tabel clubs:
id, naam, woonplaats, ...
records:
1, 'FC KNUDDE', ...
2, 'FC de Buren', ...


tabel teams: (alleen voor jouw club)
code, naam, ...
records:
'C1', 'jongens 1', ...
'C2', 'jongens 2', ...


tabel wedstrijden:
id, aanvang, club_thuis, team_thuis, club_uit, team_uit, ...
records:
1, 2013-08-24 13:10:00, 1, C1, 2, D2, ...

over D2 van FC de buren is dan geen nadere info te vinden maar dat is precies wat jij wilt toch?
Ik snap hoe het werkt alleen snap de toegevoegde waarde van de tabel clubs niet.

Ik wil bij mijn wedstrijdprogramma alleen dat hij de volgende stappen doorloopt:

1) selecteer alle wedstrijd gegeven uit tabel wedstrijden.

2) selecteer deze gegeven oplopen op datum.

3) kijk bij elke datum of zowel Team A als Team B een wedstrijd heeft.

4) Is dat zo echo dan beide wedstrijden (in opmaak zoals aangegeven in css)

5) bestaat er geen wedstrijd van Team A op datum controleer dan of Team B een wedstrijd heeft op datum en echo bij opmaak van Team A 'geen wedstrijd' en bij Team B de wedstrijd gegevens.

6) bestaat er geen wedstrijd van Team B op datum controleer dan of Team A een wedstrijd heeft op datum en echo de wedstrijd gegeven van Team A en bij Team B echo die 'geen wedstrijd'.

Alleen zie door de bomen op het moment het bos niet meer.
als we deze stappen 1 voor 1 kunnen doorlopen zou ik het misschien beter begrijpen.

PS. Bedankt voor het geduld.

je vergeet in mijn opinie stap 0: maak een correcte database indeling zodat ik hier later ook mee vooruit kan.

Ik begrijp niet helemaal wat jij bedoelt met stap 3. Heeft jouw club maar twee teams of hoe moet ik het zien?
ja we hebben maar 2 teams

met een tabel 'teams'

en een tabel 'wedstrijden' is mijn database toch correct ?

Meer hoef ik ook niet weer te geven in mijn programma
Edwin, ik neem aan dat je een tool zoals PHPMyAdmin hebt, dus test daar de query die ik eerder gaf in uit.
Dat is namelijk stap 1 en 2.
Uit het resultaat wat je dan te zien krijgt, kan je stap 3 t/m 6 afleiden.
Ik zie het, hij doet precies wat ik wil.

Ik neem aan dat ik die query gewoon in mijn php script kan zetten als volgt:

<?php

$sql='SELECT
d.datum,
COALESCE(u.thuis, 'vrij') u_thuis,
u.uit u_uit,
COALESCE(h.thuis, 'vrij') h_thuis,
h.uit h_uit
FROM (SELECT DISTINCT datum FROM wedstrijden) d
LEFT JOIN wedstrijden u
ON d.datum = u.datum AND u.teamid=1
LEFT JOIN wedstrijden h
ON d.datum = h.datum AND h.teamid=2';

$res= mysql_query($sql) or die ("FOUT:" . mysql_error());

?>

En dan het printen via een while lus ?

<?php while($rij = mysql_fetch_array($res)){ ?>

<?php echo ($rij['datum']); ?>

enz.
Kijk naar de kleurtjes, het idee is goed maar de uitvoering iets minder.
Zet dubbele quotes om de query op zich ;-)

Reageren