Weergave tabel stand competitie splitsen in dreamweaver

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jo Immanuel

Jo Immanuel

15/08/2013 11:46:24
Quote Anchor link
Beste forumleden,

Onlangs ben ik hier schitterend geholpen met een probleem die ik had m.b.t. de sql-query voor het uitrekenen van de stand van een competitie.

Nu wil ik deze stand plaatsen op mijn site (ik gebruik overigens dreamweaver), alleen de ruimte die ik voor de stand heb gereserveerd op de site is niet geschikt om de uitkomsten van die query allemaal onder elkaar te zetten. Daarom wil ik de uitkomst van de query (de stand) splitsen in een linkerrijtje (de bovenste 9 clubs) en een rechterrijtje (de onderste 9 clubs) naast elkaar (ipv van alle 18 clubs onder elkaar).

Nu kan ik natuurlijk in de DIV die ik heb aangemaakt om de stand in te plaatsen twee tabellen plaatsen: 1 voor de eerste 9 resultaten van de "stand"-query en 1 voor de laatste 9 resultaten. Maar daar zitten denk ik wat nadelen aan:
a. Dan moet twee keer een vrij ingewikkelde query worden uitgevoerd en dat kan niet goed zijn voor performance.
b. (wat eigenlijk een aparte vraag is) Ik wil ook de uitkomsten nummeren (zodat er een 1 komt voor de club die bovenaan staat, een 2 voor club die nummer 2 staat enz). Ik denk dat daar dan ook problemen gaan komen als ik voor beide tabellen (het linkerrijtje en rechterrijte) een aparte sql-query ga uitvoeren.

Ik heb concreet de volgende vragen:

1. Weet iemand hoe ik in dreamweaver ervoor kan zorgen dat mijn tabel (de stand) gesplitst wordt zodat ik (ipv een 1 lijst onder elkaar) een linker- en rechterrijtje krijg (naast elkaar)?

2. Hoe zorg ik ervoor dat in het resultaat van de sql-query er nummering plaatsvindt zodat voor er voor de ranglijstaanvoerder er een '1' staat, voor de nummer 2 een '2', enz.

De 'stand'-query is de volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
SELECT
    c.clubID,
    c.clubnaam,
    SUM(IF(c.clubID = u.thuisclubID,
            CASE
                WHEN u.thuisscore > u.uitscore THEN 3
                WHEN u.thuisscore = u.uitscore THEN 1
                ELSE 0 END
        , /* ELSE */
            CASE
                WHEN u.thuisscore < u.uitscore THEN 3
                WHEN u.thuisscore = u.uitscore THEN 1
                ELSE 0 END
        )) punt_totaal,
    COUNT(u.wedstrijdID) gespeeld,
    SUM(IF(c.clubID = u.thuisclubID,
            IF(u.thuisscore > u.uitscore, 1, 0),
            IF(u.thuisscore < u.uitscore, 1, 0)
        )) gewonnen,
    SUM(IF(c.clubID = u.thuisclubID,
            IF(u.thuisscore < u.uitscore, 1, 0),
            IF(u.thuisscore > u.uitscore, 1, 0)
        )) verloren,
    SUM(IF(u.thuisscore = u.uitscore, 1, 0)) gelijk,
    SUM(IF(c.clubID = u.thuisclubID, thuisscore, uitscore)) doelp_voor,
    SUM(IF(c.clubID = u.thuisclubID, uitscore, thuisscore)) doelp_tegen,
    SUM(IF(c.clubID = u.thuisclubID, thuisscore, uitscore)) -
        SUM(IF(c.clubID = u.thuisclubID, uitscore, thuisscore)) doelsaldo
FROM
    clubs c
LEFT JOIN
    (SELECT
        wedstrijdID,
        w.thuisclubID,
        w.uitclubID,
        COUNT(IF(d.thuisclub_uitclub = 'thuis', 1, NULL)) thuisscore,
        COUNT(IF(d.thuisclub_uitclub = 'uit', 1, NULL)) uitscore
    FROM
        tbl_wedstrijden w
    LEFT JOIN
        tbl_doelpunten d
        USING (wedstrijdID)
    WHERE w.datumwedstrijd BETWEEN '2012-08-09' AND '2012-08-12'
    GROUP BY wedstrijdID, w.thuisclubID, w.uitclubID
    ) u
    ON c.clubID = u.thuisclubID OR c.clubID = u.uitclubID
GROUP BY c.clubID, c.clubnaam
ORDER BY punt_totaal DESC, gespeeld, doelsaldo DESC, doelp_voor DESC
Gewijzigd op 15/08/2013 11:53:18 door Jo Immanuel
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.