Beste forumleden,

Ik wil uitslagen en statistieken van gespeelde voetbalwedstrijden laten zien op mijn site.
Nu heb ik een vraag m.b.t. presentatie van data (in tabelvorm) uit een db op mn website.

Dus bijvoorbeeld van de wedstrijd ADO - PSV wil ik de opstelling van ADO als volgt laten zien

Resultaat SQL-query:

rugnummer 	achternaam 	kaarten 	aantaldoelpunten
1	Coutinho 	NULL	NULL
15	Malone 	<img src="geel.png" alt="icon" /> 	NULL
3	Wormgoor 	NULL	NULL
18	Beugelsdijk 	NULL	NULL
8	Meijers 	<img src="geel.png" alt="icon" /> 	NULL
7	Jansen 	NULL	NULL
14	Visser 	NULL	NULL
10	Toornstra 	NULL	NULL
11	Chery 	<img src="geel.png" alt="icon" /> 	NULL
36	Vicento 	NULL	<img src="goal.png" alt="icon" />
9	Poepon 	NULL	NULL


Dus naast de kolommen rugnummers en achternaam ook twee kolommen met informatie of de speler een kaart gekregen heeft of gescoord heeft.

Nu gaat het me om de presentatie van deze resultaten van de query. Ik wil rugnummers en namen aan de linkerkant en kaarten en doelpunten aan de rechterkant. Tot zover geen probleem.

Alleen: nu wil ik graag dat wanneer een speler wel een kaart heeft gekregen maar niet heeft gescoord, het plaatje van de kaart helemaal naar rechts uitgelijnd is. (En dus eigenlijk op de plek van het plaatje van het doelpunt staat (als de speler die gemaakt had)). Want nu staat dat plaatje van die kaart zo lelijk in het midden van de regel.

Ik hoop dat jullie begrijpen wat ik bedoel...

Is dat mogelijk? En zo ja hoe?
Ja, dat zie je compleet verkeerd.

Concat is een sql functie om twee strings aan elkaar te plakken. Wat jij wil is iets dat met styling van je html pagina te maken heeft, css dus. Dat heeft niets, maar dan ook echt helemaal niets met elkaar te maken.
Ik heb een tabel met 4 kolommen: rugnummer (25px breed), achternaam (125px breed, links uitgelijnd), kaarten (25px rechts uitgelijnd) & doelpunten (100px, rechts uitgelijnd).
De plaatjes van een doelpunt en een kaart zijn 10px breed.

Stel:
- er is 1 speler (speler A) die alleen een gele kaart gekregen heeft
- er is 1 speler (speler B) die alleen een doelpunt gemaakt heeft
- er is 1 speler (speler C) die zowel een doelpunt als een kaart heeft.

Als ik concat gebruik is er voor speler A geen probleem. Doordat er niet gescoord is komt de kaart helemaal rechts te staan. Dat wil ik. Voor speler B is het ook prima. Doelpunt komt namelijk helemaal rechts te staan.

Maar voor speler C krijg ik dan iets wat ik liever niet wil. Het doelpunt komt dan namelijk helemaal rechts te staan en de gele kaart 90px (breedte kolom - breedte plaatje) van het doelpunt af te staan.
Ik wil dat het plaatje van de kaart tegen het plaatje van het doelpunt aan komt te staan (links van het plaatje van het doelpunt).

En dat zou ik wel met CSS kunnen bereiken door de kolom doelpunten 10px breed te maken, maar dan heb ik een probleem wanneer er een andere wedstrijd is waarin er een speler is die twee of meer keer gescoord heeft, want dan past het niet meer.

Of mis ik nu iets?
Jo,

is het misschien handiger om de kolom kaarten rechts uit te lijnen en de doelpunten links, dan komen ze (als een speler zowel een kaart als doelpunten heeft) toch bij elkaar te staan.

Of is dit te simpel gedacht?
Jo Immanuel op 24/10/2013 16:05:22

He Michael,

[knip/]

Geeft geen foutmeldingen. Maar als ik hem test op mijn testserver dan krijg ik het volgende:

11x de volgende tekst:
Notice: Undefined variable: aantaldoelpunten in C:\xampp\htdocs\site-TS\oefening1asqlopstellingcolspan3.php on line 70

Lijn 70 is de volgende regel: <?php if($aantaldoelpunten > 0) { ?>

Verder valt op dat bij de tabel de gele kaarten wel mooi naar rechts zijn uitgelijnd, alleen is het plaatje van het doelpunt niet meer te zien.


Notice is inderdaad geen foutmelding, maar hier wordt gezegd dat $aantaldoelpunten niet aangemaakt/ge-set is.
Als er niet is gescoord is het aantaldoelpunten dan 0 of leeg in de database?
In het eerste geval zal die wel worden aangemaakt en in je variabele verkeerd.
In het tweede geval kun je dit simpel oplossen met
<?php
if(isset($row_RSopstellingTHUIS['aantaldoelpunten']) && $row_RSopstellingTHUIS['aantaldoelpunten'] > 0)
?>

Je kunt die $row.. gewoon gelijk gebruiken ipv deze eerst in $aantaldoelpunten op te slaan.

Reageren