Draaitabel /pivot

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java Developer

Functie Wat ga je doen als Java developer? Jij komt terecht binnen een informeel team waarin je verantwoordelijk bent voor de backend systemen voor grote klanten als Ziggo en KPN. Als Medior Java developer werk je in teamverband en soms individueel. Gedurende de werkweek zal je veelvuldig sparren met je collega’s voor een goede implementatie van de software. Ben jij een echte Java developer? Ben je geïnteresseerd in de nieuwste technieken en de laatste ontwikkelingen? Dan ben je hier aan het juiste adres! Eisen Wat wordt er van jou verwacht? • Minimaal HBO/WO denk- en werkniveau; • Analytisch sterk, open

Bekijk vacature »

Fullstack developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie werken? Voor een mooi softwarebedrijf in omgeving Alblasserdam zijn wij op zoek naar versterking op de afdeling Software Development! Als Fullstack react.js developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook regelmatig met de back

Bekijk vacature »

Low Code Ontwikkelaar

In het kort Als Low Code Developer werk je aan projecten bij en voor onze klanten, waarbij je voor het ontwikkelen van de oplossingen een technisch low-code platform gebruikt. Samen met het team streef je naar de beste oplossing en bepalen jullie de juiste aanpak. Je rol is divers en je bent van begin tot eind betrokken bij de ontwikkeling zowel de back-end en de front-end van de applicatie. Naast de ontwikkeling en oplevering, breng je ook advies uit aan de klant waarom bepaalde keuzes worden gemaakt. Je bent dan ook communicatief sterk en kunt je keuzes goed (inhoudelijk) onderbouwen.

Bekijk vacature »

Senior Cobol Applicatieontwikkelaar

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving In de applicatie ETM

Bekijk vacature »

SQL beheerder / ontwikkelaar

Functie omschrijving Voor een klant in omgeving Tiel zijn wij op zoek naar een SQL beheerder met affiniteit met technisch applicatiebeheer. Je krijgt een fijne in-house werkplek waar je gaat werken aan diverse projecten. Dit bedrijf doet het beheer van databases voor een aantal bancaire klanten. Op dit momenten hebben zij ruim 1500 databases in beheer. Jouw werkzaamheden gaan er als volgt uit zien: Je gaat de development afdeling ondersteunen bij het ontwikkelen van MS SQL Scripts. Je zal zowel zelfstandig als in teamverband MS SQL databases installeren & beheren. Je monitort en onderzoekt incidenten en de achterliggende oorzaken. Je

Bekijk vacature »

.NET developer

Functie Als junior .NET ontwikkelaar ga jij aan de slag in één van de 5 IT teams van dit bedrijf. Jullie werken op basis van interne klantprojecten aan voornamelijk webapplicaties. Dit betekent dat jij continu uitgedaagd wordt en veelal met verschillende soorten projecten bezig bent. Het gave is dan ook dat jullie als team samen bekijken welke technieken het beste passen bij het project waar jullie verantwoordelijk voor zijn. Zo kan het zijn dat jij als .NET developer gaat werken aan een project, maar dat jullie als team liever gebruik maken van Haskell of F# om de klus te klaren.

Bekijk vacature »

C# Ontwikkelaar

Functieomschrijving Voor een software ontwikkelaar in de omgeving van Vught zijn we op zoek naar een gemotiveerde C# ontwikkelaar. Deel jij hun passie voor development en dan vooral in C#.NET? Dan kan dit wel eens jouw droombaan zijn! Jouw werkzaamheden zullen er ongeveer als volgt uit gaan zien Door de wensen van de klant goed te begrijpen ga jij aan de slag dit om te zetten naar passende oplossingen en werk je deze uit tot een sterk eindproduct. Je gaat je bezighouden met de ontwikkeling van webapplicaties en websites, dit doe je door middel van ASP.NET, MVC Frameworks en C#.

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Functioneel applicatiebeheerder - SOP-SYS-SAM

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Functioneel Applicatiebeheerder voor het financiele domein op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je gaat samenwerken in een team van circa 15 functioneel applicatiebeheerders en gaat onderdeel uitmaken van een DevOps team. Met dit team ga je applicaties (laten) ontwikkelen en beheren. Hierbij concentreer je je vooral op

Bekijk vacature »

Starter/junior Magento developer gezocht!

Functie Je komt te werken in een zelfsturend team waarin vertrouwen voorop staat en inbreng en ideeën worden gewaardeerd. Ook staat innovatie centraal. Ze bieden jou de mogelijkheid om jezelf door te ontwikkelen. Denk hierbij aan cursussen en een persoonlijk ontwikkelplan. Je komt terecht in het team van momenteel 4 (ervaren) collega’s en zal meewerken aan de doorontwikkeling en nieuwbouw van de Magento platformen van meerdere opdrachtgevers volgens Agile/Scrum. Denk hierbij aan nieuwe functionaliteiten, UX en koppelingen met verschillende back-end systemen. Als starter/junior developer zul je direct begeleid worden door een senior uit het team. Het is van belang dat

Bekijk vacature »

Software Developer

Dit ga je doen Ontwikkelen aan de software dat beschikbaar is op de substations; Ontwikkelen in C++, C, Python en JavaScript. Daarnaast op een Embedded Linux omgeving, opgebouwd met containers en DevOps; Meewerken aan cyber security (OWASP); Uitvoeren/bouwen van geautomatiseerde testen in samenwerking met de Quality Specialist; Vertalen van wensen van de klanten/business naar werkbare/duurzame oplossingen. Hier ga je werken Als Software Ontwikkelaar kom je te werken bij een organisatie gericht op de (internationale) energiemarkt, waar wordt gewerkt voor het verwerven en verwerken van realtime, high quality data. Er wordt gewerkt vanuit het hart van de substations en direct voor

Bekijk vacature »

Medior PHP Developer

Functie omschrijving We are looking for a dutch native speaker Wil jij als developer werken bij een interne organisatie en de eigen software verder helpen ontwikkelen? Lees dan snel verder! In deze functie ga je werken als PHP Developer en de interne software en applicaties verder ontwikkelen. In het kort houdt dit in: Je gaat de interne applicaties en software verder optimaliseren. Verder bouw je verschillende API's en koppelingen tussen systemen. Je gaat het CRM-systeem door middel van PHP verder ontwikkelen. Ook ga je collega's ondersteunen bij vragen over de software en applicaties. Bedrijfsprofiel Dit bedrijf is actief in het

Bekijk vacature »

REMOTE - Front-end Angular developer

Functie Het IT-team bestaat momenteel uit de IT Manager, 2 back-end developers, 1 fullstack developer, 1 designer en een DevOps engineer. Ze zijn momenteel op zoek naar een ervaren Front-end developer die autonoom en gedisciplineerd aan de slag gaat, en bij aanvang als enige developer met hun Front-end applicaties bezig is. Wel hebben ze de ambitie om hier snel een 2e developer bij te vinden die jij dan ook zal kunnen aansturen/begeleiden. Je zult aan de slag gaan met het doorontwikkelen van hun bestaande UI in Angular. Maar ook het ontwikkelen van een mobiele app. Hierbij hechten ze veel waarde

Bekijk vacature »

Machine Software Developer

Bij een bedrijf in de machinebouw, regio Roosendaal, zijn we op zoek naar een: Machine Software Developer Waar ga je werken? Onze opdrachtgever is gespecialiseerd in de grondverzetmachines. Al meer dan 50 jaar leveren ze zowel nationaal als internationaal diverse machines. Het is een familiebedrijf met een informele werksfeer. Wat ga je doen? Als Machine Software Developer ben je verantwoordelijk voor: - Je ontwerpt, ontwikkelt en debugt software voor machinebesturingssystemen en complexe landbouwmachines; - Je stelt gebruikersinterfaces op (cabinedisplays); - Op termijn ga je softwareprojecten leiden voor specifieke machines; - Inclusief planning, documentatie en validatie; - Om specificaties te verifiëren

Bekijk vacature »

Ervaren Magento developer gezocht!

Functie Je komt te werken in een zelfsturend team waarin vertrouwen voorop staat en inbreng en ideeën worden gewaardeerd. Ook staat innovatie centraal. Ze bieden jou de mogelijkheid om jezelf door te ontwikkelen. Denk hierbij aan cursussen en een persoonlijk ontwikkelplan. Je komt terecht in het team van momenteel 4 (ervaren) collega’s en zal meewerken aan de doorontwikkeling en nieuwbouw van de Magento platformen van meerdere opdrachtgevers volgens Agile/Scrum. Denk hierbij aan nieuwe functionaliteiten, UX en koppelingen met verschillende back-end systemen. Als ervaren developer zul je hiernaast ook andere developers assisteren en waar nodig de leiding nemen in het project.

Bekijk vacature »

Pagina: 1 2 volgende »

Mar kla

mar kla

14/03/2013 13:08:05
Quote Anchor link
je ziet overal in de voetbalbladen van die mooie draaitabellen, wie weet een script om van dit

datum | gespeeld |thuis |uit |score
zo 23-09-2012 12:30 Y 06 ADO AJA 1-1
za 10-11-2012 19:45 Y 12 ADO AZA 2-2
zo 05-05-2013 12:30 N 33 ADO FEY 0-0
zo 12-08-2012 16:30 Y 01 AJA AZA 2-2
zo 20-01-2013 14:30 Y 19 AJA FEY 3-0
zo 24-02-2013 14:30 Y 24 AJA ADO 1-1
zo 25-11-2012 14:30 Y 14 AZA FEY 0-2
za 09-03-2013 20:45 Y 26 AZA ADO 1-1
zo 17-03-2013 16:30 N 27 AZA AJA 0-0
zo 28-10-2012 12:30 Y 10 FEY AJA 2-2
zo 16-12-2012 14:30 Y 17 FEY ADO 3-2
zo 10-02-2013 14:30 Y 22 FEY AZA 3-1


een draaitabel /pivot tabel te maken zoals dit:

xxx|ado|aja|aza|fey|
___|___|___|___|___|_
ado| X |1-1|2-2| - |
___|___|___|___|___|_
aja|1-1| X |2-2|2-0|
___|___|___|___|___|_
aza|1-1| - | X |0-2|
___|___|___|___|___|_
fey|3-2|2-2|3-1| X |
___|___|___|___|___|_

Ik heb al lopen zoek maar kan het helaas geen gode oplossng vinden

Misschien moet ik iets met een array doen, waarmee ik per thuisteam een regel maak. Maar ik kom er dus niet uit :-(
Gewijzigd op 14/03/2013 13:09:08 door Mar kla
 
PHP hulp

PHP hulp

17/03/2025 02:32:13
 
Mar kla

mar kla

28/09/2014 21:00:53
Quote Anchor link
ik ben nog steeds op zoek naar een simple script waarbij ik uit een table eeb draaitabel o.i.d. kan maken

Wie kan me op weg helpen?
 
Php knipper

php knipper

28/09/2014 21:06:40
Quote Anchor link
het is zeker mogelijk om dit uit te lezen, met de tussenkomst van een array. Echter weet ik niet wat wat betekent. Kun je al je cellen eens verduidelijken?
 
Mar kla

mar kla

28/09/2014 21:19:11
Quote Anchor link
de table bestaat uit de volgen de velden:

cs_wedstrijden_id (oplopen nummer)
cs_wedstrijd_gespeeld (Y of N)
cs_season_id (verwijst naar een table met uitgebreide seizoen info)
cs_wedstrijden_speelronde ( ronde 1 tot X)
cs_wedstrijden_datum (speekt voor zich)
cs_team_id_thuis (verwijst naar de table teams)
cs_team_id_uit (verwijst naar de table teams)
cs_doelthuis (speekt voor zich)
cs_doeluit(speekt voor zich)

en wat ik dus graag zou willen is een over zicht maken zoals bij "uitslagen" op bij voorbeeld http://nl.wikipedia.org/wiki/Eerste_divisie_2013/14 staat
 
Php knipper

php knipper

28/09/2014 23:48:10
Quote Anchor link
Sorry, ik snap het nog steeds niet. Ik ken echt niet's van die sport?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

29/09/2014 03:13:05
Quote Anchor link
Kan het wel maken maar om het op jouw code aan te laten sluiten:
doe eens een print_r(jouw_array);

Weet je niet wat ik bedoel? laat dan eens stukje php code zien waar de data wordt opgehaald uit de database of de api
 
Mar kla

mar kla

29/09/2014 19:49:20
Quote Anchor link
@php knipper

Het heeft op zich niets met voetbal te maken. Dat is nu wel de inhoud, maar het had net zo goed schaken of korfbal kunnen wezen.

Het doel is dat er vanuit de tabel een draaitabel komt.
vertical een kolom met de thuis spelende partij en horizontaal een rij met uitspelende partij op de "snij punten" kommen dan het resultaat van de wedstrijd of de datum als de wedstrjid nog gespeeld moet worden.

Diangonaal loopt een rij met lege snijpunten omdat een ploeg nooit tegen zich zelf kan spelen

zie hier een voorbeeld:
http://images.dailyexpress.co.uk/img/dynamic/67/590x/secondary/45471.jpg

Toevoeging op 29/09/2014 19:52:27:

@Frank Nietbelangrijk
In alleen nog maar tot de querie gekomen
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
<?php
SELECT
g.cs_team_id_thuis ,
t1.TeamName_Short as home,
g.cs_team_id_uit,
t2.TeamName_Short as away,
g.cs_wedstrijden_speelronde as round
FROM
cs_wedstrijden g,
af_teams t1,
af_teams t2
WHERE `cs_season_id` =109
AND g.cs_team_id_thuis= t1.Team_ID
AND g.cs_team_id_uit= t2.Team_ID
order by t1.TeamName_Short, t2.TeamName_Short
?>
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

29/09/2014 21:32:52
Quote Anchor link
Stap eens af van die ouderwetse join syntax, maar gebruik gewoon de standaard SQL (ANSI) syntax.
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
<?php
$stmt
= $pdo->query("SELECT
        h.teamName_short home,
        a.teamName_short away,
        CASE m.cs_wedstrijd_gespeeld
            WHEN 'Y' THEN CONCAT(m.cs_doelthuis, ' - ', m.cs_doeluit)
            WHEN 'N' THEN DATE_FORMAT(datum, '%d-%m-%y')
            ELSE 'X' END uitslag
    FROM
        af_teams h
    CROSS JOIN
            af_teams a
    LEFT JOIN
            cs_wedstrijden m
        ON h.team_id = m.team_id_thuis
        AND a.team_id = m.team_id_uit
        AND m.cs_season_id = 109
    ORDER BY h.teamName_short, a.teamName_short"
);
$counter = 0;
$head = '<thead><tr><td>Naam</td>';
$body = '<tbody>';
$tr = '';
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    if($row['home'] !== $pointer) {
        $counter++;
        $pointer = $row['home'];
        $tbody .= $tr . '<tr><td>' . $pointer .'</td>';
        $tr = '</tr>';
    }

    if ($counter == 1) {
        $thead .= '<td class="rotated">' . $row['away'] . '</td>';
    }

    $tbody .= '<td>' . $row['uitslag'] . '</td>';
}

echo '<table>' . $thead . '</tr></thead>' . $tbody . '</tr></tbody></table>';
        
?>

Let op de left join, die zorgt ervoor dat de koppeling aan zichzelf ook in het resultaat komt
Gewijzigd op 29/09/2014 21:34:08 door Ger van Steenderen
 
Mar kla

mar kla

29/09/2014 22:39:10
Quote Anchor link
HOi Ger

Dit lijkt me een mooi en compleet script!!

ik ben er even mee aan het stoeien, maar ik kom er nog niet helemaal uit

als ik hem draai dan krijg ik deze errors:

PHP Notice: Undefined variable: pdo in inc_as_competiton_matrix.php on line 2

PHP Fatal error: Call to a member function query() on a non-object in inc_as_competiton_matrix.php on line 2

dat is $stmt = $pdo->query("SELECT

daarnaast lijkt het script zich niks van regel 17 AND m.cs_season_id = 109 aan te trekken
 
- Ariën  -
Beheerder

- Ariën -

29/09/2014 22:59:45
Quote Anchor link
Welke manier gebruik je om verbinding te maken met je database?

MySQL-functies, MySQLi-functies, PDO?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

29/09/2014 23:01:24
Quote Anchor link
Je moet zelf eerst wel $pdo ($pdo = new PDO(....)) aanmaken.

Omdat ik de opbouw van jouw tabellen niet ken, heb ik met de query een beetje moeten gokken.
Ik zelf heb een tabel waar de teams op seizoen zijn ingedeeld, dit maak dingen een stuk eenvoudiger met het generen van standen. Maar ik weet of dat bij jou ook is.

Dus ik vermoed dat in de tabel af_teams niet alleen de teams staan die aan seizoen 109 meedoen.
 
Mar kla

mar kla

29/09/2014 23:07:29
Quote Anchor link
Ger

Dat met de $pdo ($pdo = new PDO(....)) snap ik even niet. zou je dat wat meer kunnen uitleggen=


De seizoen_id (109) staat inderdaad niet in de teams, want teams kunnen namelijk in meerdere seizoenen aanwezig zijn, maar in de cs_wedstrijden want een wedstrijd zal altijd in één seizoen voorkomen.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

29/09/2014 23:24:17
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$pdo
= new PDO('mysql:host=localhost;dbname=xxxxxx;charset=utf8', 'wortel', 'willie');
?>

Ik begrijp dat je het seizoen niet in de teams heb staan, maar hoe bepaal je dan de indeling per seizoen?.
Zoals gezegd, ik zelf heb daar een tabel voor gemaakt (teams_by_season).
Gewijzigd op 29/09/2014 23:32:37 door Ger van Steenderen
 
Mar kla

mar kla

29/09/2014 23:44:33
Quote Anchor link
Ger

de indeling per siezoen wordt bepaald door de volgende gegevens

cs_wedstrijden_id (oplopend uniek volgnummer, heeft denk ik verder geen verklaring nodig)
cs_wedstrijd_gespeeld (Y of N om te bepalen al gespeeld is of nog gespeeld moet worden)

per seizoen zijn er 306 wedstrijd (18 teams die tegen elkaar spelen behalbve tegen zichzelf)

cs_season_id ((geeft aan in welk seizoen de wedstrijd gespeeld is)
cs_wedstrijden_speelronde (geeft aan welk in speelronde de onderlinge ontmoeting was)

cs_wedstrijden_datum (speekt voor zich)
cs_team_id_thuis (bevat de ID van de teams uit de table teams)
cs_team_id_uit (bevat de ID van de teams uit de table teams)
cs_doelthuis (speekt voor zich)
cs_doeluit(speekt voor zich)
 
Mar kla

mar kla

05/10/2014 14:01:04
Quote Anchor link
dit is wat ik nu als resultaat krijg

cs_wedstrijden_id mDate team1_id team1_name team2_id team2_name uitslag
1352 30/11 3 ado 4 aja 30/11
1288 27/09 3 ado 5 aza 2 - 3
1386 17/01 3 ado 8 cam 17/01
1478 22/03 4 aja 3 ado 22/03
1418 05/02 4 aja 5 aza 05/02
1523 10/05 4 aja 8 cam 10/05
1501 18/04 5 aza 3 ado 18/04
1244 17/08 5 aza 4 aja 1 - 3
1477 21/03 5 aza 8 cam 21/03
1258 30/08 8 cam 3 ado 3 - 2
1333 09/11 8 cam 4 aja 09/11
1351 29/11 8 cam 5 aza 29/11


ado aja aza cam
ado X 30/11 2-3 17/01
aja 22/03 X 05/02 10/05
aza 18/04 1-3 X 21/03
cam 3-2 09/11 29/11 X

Nb.

Ik heb nu even een beperkte zet data geselecteerd
 
Frank Nietbelangrijk

Frank Nietbelangrijk

05/10/2014 16:38:06
Quote Anchor link
Nou.. binnen een uurtje :-)

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
<?php
// even een array zoals die uit de database zou kunnen komen om te testen
$records = array(
    array(
        'cs_wedstrijden_id' => 1,
        'mDate' => '1-10-2014',
        'team1_id' => 1,
        'team1_name' => 'FC Knudde',
        'team2_id' => 2,
        'team2_name' => 'FC Losers',
        'uitslag' => '1-2',
    ),

    array(
        'cs_wedstrijden_id' => 2,
        'mDate' => '2-10-2014',
        'team1_id' => 3,
        'team1_name' => 'Ajax',
        'team2_id' => 4,
        'team2_name' => 'Feyenoord',
        'uitslag' => '2-3',
    ),

    array(
        'cs_wedstrijden_id' => 3,
        'mDate' => '3-10-2014',
        'team1_id' => 1,
        'team1_name' => 'FC Knudde',
        'team2_id' => 4,
        'team2_name' => 'Feyenoord',
        'uitslag' => '3-4',
    ),

    array(
        'cs_wedstrijden_id' => 4,
        'mDate' => '4-10-2014',
        'team1_id' => 3,
        'team1_name' => 'Ajax',
        'team2_id' => 2,
        'team2_name' => 'FC Losers',
        'uitslag' => '5-6',
    ),
);


class kruistabel
{
    private $records;
    private $teams;
    private $table;
    
    // constructor, wordt automatisch uitgevoerd.
    function __construct($records)
    {

        $this->records = $records;
        $this->makeTeamsArray();
        $this->makeTableArray();
    }

    
    // verkrijg een array met de namen van de teams
    public function getTeamNames()
    {

        return array_values($this->teams);
    }

    
    // verkrijg de complete kruistabel
    public function renderTable()
    {

        $html = '<table>';
        
        foreach($this->table as $row)
        {

            $html .= '<tr>';
            
            foreach($row as $field)
            {

                if(is_int($field))
                    $html .= '<td>' . $this->records[$field]['uitslag'] . '</td>';
                else
                    $html .= '<td>'.$field.'</td>';
            }

            
            $html .= '</tr>';
        }

            
        return $html . '</table>';
    }


    // filter alle teams uit de wedstrijden en stop ze in een array
    // hierbij komt elk team maar één keer in de array

    private function makeTeamsArray()
    {

        $this->teams = array();
        
        foreach($this->records as $match)
        {

            echo $match['team1_id'] . '-' . $match['team2_id'] . '-';
            $this->teams[$match['team1_id']] = $match['team1_name'];
            $this->teams[$match['team2_id']] = $match['team2_name'];
        }

        
        // sorteer de teams op alphabetische volgorde (optioneel)
        asort($this->teams);
        
        // echo '<pre>'; print_r($this->teams); echo '</pre>';
    }
    
    // maak een 2D array met de inhoud voor de tabel
    private function makeTableArray()
    {

        $this->table = array();
        $this->table[] = array_merge(array(''), $this->teams);

        foreach($this->teams as $id1 => $team1)
        {

            $row = array();
            
            $row[] = $team1;
            
            foreach($this->teams as $id2 => $team2)
            {

                if($id1 == $id2)
                    $row[] = 'X';
                else
                    $row[] = $this->findMatch($id1, $id2);
            }

            
            $this->table[] = $row;
        }

        
        // echo '<pre>'; print_r($this->table); echo '</pre>';        
    }
    
    // deze functie zoekt naar wedstrijden tussen team A en team B
    // hierbij maakt het niet uit of de volgorde A-B of B-A is

    private function findMatch($id1, $id2)
    {

        foreach($this->records as $key => $match)
        {

            if(($match['team1_id'] == $id1 && $match['team2_id'] == $id2) || ($match['team1_id'] == $id2 && $match['team2_id'] == $id1))
            {

                return $key;
            }
        }


        return NULL;
    }
}


$kruistabel = new kruistabel($records);
?>

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Untitled Document</title>
        <style>
            table {
                border-collapse:collapse;
            }
            table td, table th {
                border:1px solid #CCC;
                text-align:center;
            }
        </style>
    </head>
    
    <body>
        <h2>Teams:</h2>
        <ul>
        <?php
            foreach($kruistabel->getTeamNames() as $name)
                echo '<li>'.$name.'</li>';
        ?>

        </ul>
        <h2>Kruistabel:</h2>
        <?php echo $kruistabel->renderTable(); ?>
    </body>
</html>
 
Mar kla

mar kla

05/10/2014 17:46:27
Quote Anchor link
HELEMAAL TOP!!

nu moet ik alleen nog het resultaat van mij query naar de Array

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
<?php
SELECT
    m1.cs_wedstrijden_id,
    date_format(m1.cs_wedstrijden_datum, '%d/%m') as mDate,
    m1.cs_team_id_thuis AS team1_id,
    t1.TeamName_Short AS team1_name,
    m1.cs_team_id_uit AS team2_id,
    t2.TeamName_Short AS team2_name,
CASE
m1.cs_wedstrijd_gespeeld
     WHEN 'Y' THEN CONCAT(m1.cs_doelthuis, ' - ', m1.cs_doeluit)
     WHEN 'N' THEN     date_format(m1.cs_wedstrijden_datum, '%d/%m')
     ELSE 'X' END uitslag
FROM
    cs_wedstrijden m1, af_teams t1, af_teams t2
WHERE
    cs_season_id =110
AND
    t1.Team_ID = cs_team_id_thuis
AND
    t2.Team_ID = cs_team_id_uit
ORDER by t1.TeamName_Short , t2.TeamName_Short
?>
 
Frank Nietbelangrijk

Frank Nietbelangrijk

05/10/2014 17:57:48
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$records
= $stmt->fetchAll(PDO::FETCH_ASSOC);
?>
Gewijzigd op 05/10/2014 17:58:40 door Frank Nietbelangrijk
 
Mar kla

mar kla

05/10/2014 19:19:20
Quote Anchor link
:-(

dat van die PDO snap ik even niet

Met onderstaand code krijg ik nu de errors

PHP Notice: Undefined variable: kruistabel in new1.php on line 153
PHP Fatal error: Call to a member function renderTable() on a non-object in new1.php on line 153

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<?php


$pdo
= new PDO("mysql:host=localhost;dbname=database;charset=utf8;user='ikke';password='blabla'");

$stmt = $pdo->query("SELECT
    m1.cs_wedstrijden_id,
    date_format(m1.cs_wedstrijden_datum, '%d/%m') as mDate,
    m1.cs_team_id_thuis AS team1_id,
    t1.TeamName_Short AS team1_name,
    m1.cs_team_id_uit AS team2_id,
    t2.TeamName_Short AS team2_name,
CASE m1.cs_wedstrijd_gespeeld
     WHEN 'Y' THEN CONCAT(m1.cs_doelthuis, ' - ', m1.cs_doeluit)
     WHEN 'N' THEN     date_format(m1.cs_wedstrijden_datum, '%d/%m')
     ELSE 'X' END uitslag
FROM
    cs_wedstrijden m1, af_teams t1, af_teams t2
WHERE
    cs_season_id =110
AND
    t1.Team_ID = cs_team_id_thuis
AND
    t2.Team_ID = cs_team_id_uit
ORDER by t1.TeamName_Short , t2.TeamName_Short"
) or die(mysql_error());
      
while ($records = $stmt->fetchAll(PDO::FETCH_ASSOC))
{

class kruistabel
{
    private $records;
    private $teams;
    private $table;
    
    // constructor, wordt automatisch uitgevoerd.
    function __construct($records)
    {

        $this->records = $records;
        $this->makeTeamsArray();
        $this->makeTableArray();
    }

    
    // verkrijg een array met de namen van de teams
    public function getTeamNames()
    {

        return array_values($this->teams);
    }

    
    // verkrijg de complete kruistabel
    public function renderTable()
    {

        $html = '<table>';
        
        foreach($this->table as $row)
        {

            $html .= '<tr>';
            
            foreach($row as $field)
            {

                if(is_int($field))
                    $html .= '<td>' . $this->records[$field]['uitslag'] . '</td>';
                else
                    $html .= '<td>'.$field.'</td>';
            }

            
            $html .= '</tr>';
        }

            
        return $html . '</table>';
    }


    // filter alle teams uit de wedstrijden en stop ze in een array
    // hierbij komt elk team maar één keer in de array

    private function makeTeamsArray()
    {

        $this->teams = array();
        
        foreach($this->records as $match)
        {

            echo $match['team1_id'] . '-' . $match['team2_id'] . '-';
            $this->teams[$match['team1_id']] = $match['team1_name'];
            $this->teams[$match['team2_id']] = $match['team2_name'];
        }

        
        // sorteer de teams op alphabetische volgorde (optioneel)
        asort($this->teams);
        
        // echo '<pre>'; print_r($this->teams); echo '</pre>';
    }
    
    // maak een 2D array met de inhoud voor de tabel
    private function makeTableArray()
    {

        $this->table = array();
        $this->table[] = array_merge(array(''), $this->teams);

        foreach($this->teams as $id1 => $team1)
        {

            $row = array();
            
            $row[] = $team1;
            
            foreach($this->teams as $id2 => $team2)
            {

                if($id1 == $id2)
                    $row[] = 'X';
                else
                    $row[] = $this->findMatch($id1, $id2);
            }

            
            $this->table[] = $row;
        }
      
    }

    
    // deze functie zoekt naar wedstrijden tussen team A en team B
    // hierbij maakt het niet uit of de volgorde A-B of B-A is

    private function findMatch($id1, $id2)
    {

        foreach($this->records as $key => $match)
        {

            if(($match['team1_id'] == $id1 && $match['team2_id'] == $id2) || ($match['team1_id'] == $id2 && $match['team2_id'] == $id1))
            {

                return $key;
            }
        }

        return NULL;
    }
}


$kruistabel = new kruistabel($records);

?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>kruistable</title>
<style>
table {
border-collapse:collapse;
}
table td, table th {
border:1px solid #CCC;
text-align:center;
}
</style>
</head>

<body>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $kruistabel->renderTable(); ?>

</body>
</html>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
}
?>
Gewijzigd op 05/10/2014 20:42:40 door mar kla
 
Frank Nietbelangrijk

Frank Nietbelangrijk

05/10/2014 20:22:02
Quote Anchor link
een fetchAll hoeft niet in een while lus. deze pakt in één keer alle records :-)

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
<?php


class kruistabel
{
    // HIER DIE CLASS VAN MIJ
}

$pdo = new PDO("mysql:host=localhost;dbname=adostatsTEST;charset=utf8;user='ikke';password='blabla'");

$stmt = $pdo->query("HIER DIE MOOIE QUERY VAN JOU :-)") or die(mysql_error());
$records = $stmt->fetchAll(PDO::FETCH_ASSOC);

$kruistabel = new kruistabel($records);
echo $kruistabel->renderTable();
?>
 
Mar kla

mar kla

05/10/2014 22:00:37
Quote Anchor link
YEP!!!Dat is hem!!

hartstikke bedankt!!
 

Pagina: 1 2 volgende »



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.