Reken met MySQL.... pfff wat is dat lastig

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

- DHU -

- DHU -

14/10/2018 18:16:06
Quote Anchor link
Hallo.

ik ben een beginnenling met php en sql. voor mij gevoel toch al wel aardig op weg. Ik heb eeb site gemaakt (nog wel lokaal kan deze nog niet tonen dus) waar ik standen bij hou van tennisuistlagen. Er worden aleen dubbels gespeeld. De samenstelling is 2 heren en 2 dames per team. Door deze opstelling kan er dus een herendubbel, een damesdubbel en twee mix wedstrijden per keer worden gehouden.
Nu ben ik inmiddels zover dat ik de uitslagen kan invoeren en kan laten tonen op de site.. maar nu gaat er voor mij een uitdaging komen die ik niet snap.. Het rekenen met SQL en het resultaat kan toen. BEn op zoek naar iemand die mij hier wegwijs in wil maken.
ken niet alle mogelijkheden hoe eea in zijn werk gaat. Ik heb het wel in de kop zitten hoe ik het ongeveer wil ... maar ik kan het helaas niet bouwen...

zo hebben de heren een uitslag... de dames en natuurlijk de twee mixgames.
De setstanden kan ik invoeren. Hoe tel ik de setstanden bij elkaar op en bepaal ik de winnaar. Daar hoe moet ik nu de berekenign maken dat de winner van 1 punt krijgt.... de punten van alle dicipline s worden op het einde bij elkaar opgeteld en dan hebben we match resultaat.


Dit is een belangrijke stap.. maar als dat eenmaal is gerealiseerd komt er een verolgstap achteraan.. De ranking en standen.. ook daarvan weet ik niet hoe ik het moet aanvliegen.


Helaas kan ik op het www niet laten tonen wat ik nu heb .. dat kan wat lastig zijn.. plus hou er een aub ook rekening mee dat ik nog lerende ben in deze materie en dat ik qua programmering het nog niet onder de knie heb :-)

Ik hoop dat er iemand is die me kan en wil helpen... alsvast bedankt.
ps als het helpt dat ik mijn function hier post geef dan aub een seintje...
 
PHP hulp

PHP hulp

29/03/2024 16:22:42
 
- Ariën  -
Beheerder

- Ariën -

14/10/2018 18:36:13
Quote Anchor link
We kunnen je vast wel helpen. Kan je jouw relevante code en jouw databasemodel laten zien?
 
Rob Doemaarwat

Rob Doemaarwat

14/10/2018 19:00:31
Quote Anchor link
Met de MySQL if(...) functie kun je een redelijk eind komen. Bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
select team1,team2,if(team1 = team2,1,if(team1 > team2,2,0)) as `score`
from `sets`

Als team1 en team2 gelijk hebben gespeeld 1 punt, anders indien gewonnen 2 punten, anders 0 (steeds voor team1; ik heb geen verstand van tennis, dus misschien kan het wel nooit gelijk zijn).

Dit kun je dan net zover uitwerken (sub-query die alle sets weer bij elkaar optelt, enz) totdat je bent waar je wezen wilt. Je kunt er ook een "stored procedure" voor maken (= een eigen functie definiëren in MySQL; die kun je dan aanroepen als elke andere functie).

Maarrr, je kunt natuurlijk ook bij het invoeren van de setstanden meteen de uitslag (van de wedstrijd + alle games + verdiende punten) berekenen (in PHP), en die ook direct ergens opslaan. Als je dan de ranking uit wilt rekenen hoef je niet eerst alles steeds opnieuw te bepalen, maar puur nog de tabel uit te lezen/optellen/sorteren. Scheelt je een hoop (herhaald) gedoe.
Gewijzigd op 14/10/2018 19:01:23 door Rob Doemaarwat
 
- DHU -

- DHU -

14/10/2018 20:09:00
Quote Anchor link
Hoi Rob,
Tnx voor je snelle reatie.. mijn probleem is dat ik ongeveer wel snap wat je schrijft maar ik kan dit helaas niet vertalen naar codering. Met name het laatste stukje klinkt interessant... een team speel twee sets. Behalve als daar een 1-1 uitslag komt dan wordt er een tie break gespeeld. Er komt dus uiterlijk en 2-1 of een 2-0 stand.. Op zich maakt at niet uit. De winning team krijgt 1 punt. De verliezer 0. Dit principe telt voor de heren, dames en de twee mixen. Het wedstrijd resultaat kan dus max 4-0 worden of andere mogelije standen zijn 3-1, 2-2, 1-3 of 0-4

Van iedere wedstrijden geef ik dus inderdaad de standen in. De winner kan dus inderdaad bepaald worden aan de hand hiervan en het resultaat zou weggeschreven kunnen worden naar de database. Ik denk dat het dit inderdaad voor het bepalen van de ranking ten goede komt. Mijn grote probleem/uitdaging ... hoe ga ik dit voor elkaar krijgen... nogmaals ik ben net gestart met php en mysql... en kost me beste moeite en dit is nog te hoog gegrepen.

Achtergrond vna dit alles is dat ik gevraagd ben om een website te maken voor een tennis wintercompetitie. Het moest eenvoudig te onderhouden zijn. De man die het deed is overleden en nu zijn ze een klein beetje onthand.. ik heb alleen joomla ervaring en html kennis.. het leek me leuk uitdaging om meer van php en mysql te weten te kunnen komen maar een zelfstudie gaat helaas niet snel en de competitie staat in de startblokken. Het zou fijn dat...
maar alle goeie dingen komen langzaam.. dus ik hoop hier kennis op te doen en ik kan alle hulp gebruike.


Toevoeging op 14/10/2018 20:10:34:

Hieronder mijn functie voor het tonen van de wedstrijddetails:
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
<?php
function wedstrijd (){
        global $MySQL;
        
            
        $where = NULL;
        if (isset($_GET['id'])){
            $where = 'WHERE `schemaId` = "'.$_GET['id'].'"';
        }

        
        $sqlUitlezen = mysqli_query($MySQL, "SELECT schemaId, DATE_FORMAT(schema.schemaSpeeldatum,'%d-%m-%Y') AS schemaSpeeldatum, schemaTeamA, schemaTeamB, schemaUitslagA, schemaUitslagB, schemaHd1A, schemaHd1B, schemaHd2A, schemaHd2B, schemaHd3A, schemaHd3B, schemaSetsHdA, schemaSetsHdB, schemaDd1A, schemaDd1B, schemaDd2A, schemaDd2B, schemaDd3A, schemaDd3B, schemaSetsDdA, schemaSetsDdB, schemaMix11A, schemaMix11B, schemaMix12A, schemaMix12B, schemaMix13A, schemaMix13B, schemaSetsMix1A, schemaSetsMix1B, schemaMix21A, schemaMix21B, schemaMix22A, schemaMix22B, schemaMix23A, schemaMix23B, schemaSetsMix2A, schemaSetsMix2B,  poules.pouleId, poules.pouleLetter FROM `schema` INNER JOIN poules ON schema.schemaPouleId = poules.pouleId ".$where." ORDER BY `schemaId` ASC");
        $sqlAantal = mysqli_num_rows($sqlUitlezen);
        
        
        

        
        if ($sqlAantal > 0){
            while ($sqlData = mysqli_fetch_assoc($sqlUitlezen)){    
            echo '<article>';
            echo '
                <table align="center" cellpadding="2" width="98%" border="0">
                  <tr>
                    <td rowspan="2" align="left"><A HREF="javascript:javascript:history.go(-1)"><img src="img/icon-list.png" height="14" align="left"></a><p align="center"><font size="1" face="comic sans ms" color="gray">POULE</font><br><font size="5" face="comic sans ms"><b>'
.$sqlData['pouleLetter'].'</b></font></td>
                    <td colspan="3" align="right"><font size="2" face="comic sans ms">Wedstrijdnummer: <b>'
.$sqlData['schemaId'].'</b></font></td>
                  </tr>
                  <tr>
                    <td colspan="3" align="right"><font size="2" face="comic sans ms">Datum gespeeld: <b>'
.$sqlData['schemaSpeeldatum'].'</b></font></td>
                  </tr>
                  <tr>
                    <td colspan="4" align="center"><font size="5" face="comic sans ms">'
.$sqlData['schemaTeamA'].' - '.$sqlData['schemaTeamB'].'</font></td>
                  </tr>
                  <tr>
                    <td colspan="4" align="center"><font size="5" face="comic sans ms"><b>'
.$sqlData['schemaUitslagA'].' - '.$sqlData['schemaUitslagB'].'</b></font></td>
                  </tr>
                  <tr>
                    <td colspan="4" align="center">&nbsp;</td>
                  </tr>
                  <tr>
                    <td align="center">
                        <table border="1" cellpadding="3" cellspacing="1">
                            <tr>
                                <td colspan="5" align="center"><font size="2" face="comic sans ms"><b>HEREN</b></font></td>
                            </tr>
                            <tr>
                                <td><font size="2" face="comic sans ms"><b>1e set</b></font></td><td><font size="2" face="comic sans ms"><b>2e set</b></font></td><td><font size="2" face="comic sans ms"><b>3e set</b></font></td><td></td></td>
                            </tr>
                            <tr>
                                <td align="center"><font size="2" face="comic sans ms">'
.$sqlData['schemaHd1A'].' - '.$sqlData['schemaHd1B'].'</font></td><td align="center"><font size="2" face="comic sans ms">'.$sqlData['schemaHd2A'].' - '.$sqlData['schemaHd2B'].'</font></td><td align="center"><font size="2" face="comic sans ms">'.$sqlData['schemaHd3A'].' - '.$sqlData['schemaHd3B'].'</font></td><td align="center" nowrap><b><font size="2" face="comic sans ms">'.$sqlData['schemaSetsHdA'].' - '.$sqlData['schemaSetsHdB'].'</font></b></td>
                            </tr>
                        </table>
                    </td>
                    <td align="center">
                    <table border="1" cellpadding="3" cellspacing="1">
                            <tr>
                                <td colspan="5" align="center"><font size="2" face="comic sans ms"><b>DAMES</b></font></td>
                            </tr>
                            <tr>
                                <td><font size="2" face="comic sans ms"><b>1e set</b></font></td><td><font size="2" face="comic sans ms"><b>2e set</b></font></td><td><font size="2" face="comic sans ms"><b>3e set</b></font></td><td></td></td>
                            </tr>
                            <tr>
                                <td align="center"><font size="2" face="comic sans ms">'
.$sqlData['schemaDd1A'].' - '.$sqlData['schemaDd1B'].'</font></td><td align="center"><font size="2" face="comic sans ms">'.$sqlData['schemaDd2A'].' - '.$sqlData['schemaDd2B'].'</font></td><td align="center"><font size="2" face="comic sans ms">'.$sqlData['schemaDd3A'].' - '.$sqlData['schemaDd3B'].'</font></td><td align="center" nowrap><b><font size="2" face="comic sans ms">'.$sqlData['schemaSetsDdA'].' - '.$sqlData['schemaSetsDdB'].'</font></b></td>
                            </tr>
                        </table>
                    </td>
                    <td align="center">
                    <table border="1" cellpadding="3" cellspacing="1">
                            <tr>
                                <td colspan="5" align="center"><font size="2" face="comic sans ms"><b>MIX 1</b></font></td>
                            </tr>
                            <tr>
                                <td><font size="2" face="comic sans ms"><b>1e set</b></font></td><td><font size="2" face="comic sans ms"><b>2e set</b></font></td><td><font size="2" face="comic sans ms"><b>3e set</b></font></td><td></td></td>
                            </tr>
                            <tr>
                                <td align="center"><font size="2" face="comic sans ms">'
.$sqlData['schemaMix11A'].' - '.$sqlData['schemaMix11B'].'</font></td><td align="center"><font size="2" face="comic sans ms">'.$sqlData['schemaMix12A'].' - '.$sqlData['schemaMix12B'].'</font></td><td align="center"><font size="2" face="comic sans ms">'.$sqlData['schemaMix13A'].' - '.$sqlData['schemaMix13B'].'</font></td><td align="center" nowrap><b><font size="2" face="comic sans ms">'.$sqlData['schemaSetsMix1A'].' - '.$sqlData['schemaSetsMix1B'].'</font></b></td>
                            </tr>
                        </table>
                    </td>
                    <td align="center">
                    <table border="1" cellpadding="3" cellspacing="1">
                            <tr>
                                <td colspan="5" align="center"><font size="2" face="comic sans ms"><b>MIX2</b></font></td>
                            </tr>
                            <tr>
                                <td><font size="2" face="comic sans ms"><b>1e set</b></font></td><td><font size="2" face="comic sans ms"><b>2e set</b></font></td><td><font size="2" face="comic sans ms"><b>3e set</b></font></td><td></td></td>
                            </tr>
                            <tr>
                                <td align="center"><font size="2" face="comic sans ms">'
.$sqlData['schemaMix21A'].' - '.$sqlData['schemaMix21B'].'</font></td><td align="center"><font size="2" face="comic sans ms">'.$sqlData['schemaMix22A'].' - '.$sqlData['schemaMix22B'].'</font></td><td align="center"><font size="2" face="comic sans ms">'.$sqlData['schemaMix23A'].' - '.$sqlData['schemaMix23B'].'</font></td><td align="center" nowrap><b><font size="2" face="comic sans ms">'.$sqlData['schemaSetsMix2A'].' - '.$sqlData['schemaSetsMix2B'].'</font></b></td>
                            </tr>
                        </table>
                    </td>
                  </tr>
                </table>
            '
;
            
            echo '</article>';
            }
        }
else{
            echo 'Sorry, ik heb niets kunnen vinden!';
        }
    }

    
    ?>

Edit:
Ik heb code-tags geplaatst. Gelieve dit in het vervolg zelf toe te voegen aan je bericht.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Gewijzigd op 14/10/2018 20:24:58 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

14/10/2018 20:25:58
Quote Anchor link
Ik wil wel opmerken dat ik op lijn 8 een SQL-injection vindt, waarmee iemand je query kan manipuleren om je site te kunnen hacken.

Verder begin ik te huiveren als ik dit zie:
schemaSetsDdA, schemaSetsDdB, schemaMix11A, schemaMix11B

Je moet NOOIT je kolommen in je database van aantallen laten afhangen. Dit is al een voorbeeld waarmee je jouw database nodig moet 'normaliseren' en dus je data uit moet splitsen in verschillende tabellen. Nu kan je heel lastig berekeningen erover uitvoeren, iets wat je zeker nodig hebt voor een dergelijk systeem wat je nu bouwt. Dus eigenlijk vind ik het niet zo heel gek dat je vast lijkt lopen.
Gewijzigd op 14/10/2018 20:29:39 door - Ariën -
 
Rob Doemaarwat

Rob Doemaarwat

14/10/2018 20:39:48
Quote Anchor link
D'r is wel meer "mis" met deze code. Misschien moet je je even achter je oren krabben of je dit wel wilt doen. Zeker als hier persoonlijke data van de spelers in komt te staan moet je goed nadenken over hoe je dit gaat beveiligen (nu is het absoluut niet veilig).

Misschien is het dus verstandiger om dit project even voorbij te wuiven, en eerst met iets "simpels" te beginnen. eerst een beetje in de zandbak spelen, dan pas voor het echie.

Desalniettemin: zou je de velden uit je tabellen stuk voor stuk toe kunnen lichten, eens kijken of ik het dan ga snappen.

Sowieso is het overigens handiger om een query een beetje gestructureerd op te stellen, dan kunnen wij (en ook jij in je code) 'm beter lezen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
SELECT schemaId, DATE_FORMAT(schema.schemaSpeeldatum,'%d-%m-%Y') AS schemaSpeeldatum,
  schemaTeamA, schemaTeamB, schemaUitslagA, schemaUitslagB,
  schemaHd1A, schemaHd1B, schemaHd2A, schemaHd2B, schemaHd3A, schemaHd3B, schemaSetsHdA, schemaSetsHdB,
  schemaDd1A, schemaDd1B, schemaDd2A, schemaDd2B, schemaDd3A, schemaDd3B, schemaSetsDdA, schemaSetsDdB,
  schemaMix11A, schemaMix11B, schemaMix12A, schemaMix12B, schemaMix13A, schemaMix13B, schemaSetsMix1A, schemaSetsMix1B,
  schemaMix21A, schemaMix21B, schemaMix22A, schemaMix22B, schemaMix23A, schemaMix23B, schemaSetsMix2A, schemaSetsMix2B,
  poules.pouleId, poules.pouleLetter
FROM `schema`
  INNER JOIN poules ON schema.schemaPouleId = poules.pouleId ".
$where."
ORDER BY `schemaId` ASC


En normaal is een beetje programmeur allergisch voor "select * from" (m.n. dat sterretje), maar ik vermoed dat het in dit geval toch wel handiger is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
SELECT schema.*, poules.pouleId, poules.pouleLetter
FROM `schema`
  INNER JOIN poules ON schema.schemaPouleId = poules.pouleId ".
$where."
ORDER BY `schemaId` ASC

Meestal is het trouwens handiger om je datum opmaak gewoon in PHP te doen, dan kun je tot die tijd nog met een "goede" datum werken (sorteren, omzetten, enz).
 
- DHU -

- DHU -

14/10/2018 21:12:01
Quote Anchor link
dank jullie voor de reacties. begin wel achter mijn oren te krabben als ik het zo allemaal hoor. @Arien, ik snap niet helemaal je opmerking dat ik de kolommen in de database moet af laten hangen van aantallen. .... maar de kolommen die je noemt dat zijn de veldnamen waarin de uitslag wordt opgenomen. De SQL injection snap ik al helemaal niet maar klink ernstig.. Maar ik wordt nu een beetje overspoelt met zaken die ik dus niet in het snotje heb...

@Rob. Ik sla zowiezo geen persoonlijke data op. Dat is is nl niet relevant.

Maar hier dan de uitleg van de velden:

schemaId spreekt voor zich..

schemaTeamA = Naam team A
schemaTeamB = Naam team B

schemaUitslagA = totaal teamuitslag team A (Dit zou dus berekend kunnen worden. Som van de uitkomst SchemaSets??A)
schemaUitslagB = totaal teamuitslag team B (Dit zou dus berekend kunnen worden. Som van de uitkomst SchemaSets??B)

--------------------------------------
schemaHd1A = uitslag HD team A set 1
schemaHd1B = uitslag HD team B set 1
schemaHd2A = uitslag HD team A set 2
schemaHd2B = uitslag HD team B set 2
schemaHd3A = uitslag HD team A set 3
schemaHd3B = uitslag HD team B set 3

schemaSetsHdA = score van de 3 gespeelde set (bij winst 1 punt, bij verlies 0. Dus niet de som van uitslagen.)
schemaSetsHdB = score van de 3 gespeelde set (bij winst 1 punt, bij verlies 0. Dus niet de som van uitslagen.)
-------------------------------------
Tussen de stippellijn wordt herhaald voor de Dd, Mix1 en Mix2


poules.pouleId, = spreekt voor zich. Het is ID veld van het poule tabel.
poules.pouleLetter = De Pouleletter waar de wedstrijd zich binnen heeft afgespeeld.


Dit is verklaring van de velden. en Guy.. jullie zijn voor mij de Masters hoor.. ik neem alles voor waar aan wat jullie zeggen en ik wil graag dingen anders doen hoor maar geen idee wat.
 
- Ariën  -
Beheerder

- Ariën -

14/10/2018 21:31:42
Quote Anchor link
Dirk Huizinga op 14/10/2018 21:12:01:
dank jullie voor de reacties. begin wel achter mijn oren te krabben als ik het zo allemaal hoor. @Arien, ik snap niet helemaal je opmerking dat ik de kolommen in de database moet af laten hangen van aantallen. .... maar de kolommen die je noemt dat zijn de veldnamen waarin de uitslag wordt opgenomen.

De schema's kan je opslaan in een aparte tabel 'schema'. Daaraan koppel je de clubs. Je hebt dan een uit en thuis.

Terug naar de tekentafel voor een goede databaseopzet.

Quote:
De SQL injection snap ik al helemaal niet maar klink ernstig.. Maar ik wordt nu een beetje overspoelt met zaken die ik dus niet in het snotje heb...

Je invoer in je query is niet beveiligd net mysqli_real_escape_string().

Nu kan iedereen de query via de URL manipuleren.
Gewijzigd op 14/10/2018 21:32:18 door - Ariën -
 
- DHU -

- DHU -

14/10/2018 21:50:01
Quote Anchor link
Hmmmmm i don't get it.. de schema worden in opgeslagen in de tabel `schema` en mbv een form worden de teams hier aan toegevoegd.. maar deze teams staan in aparte tabel. Het formulier leest deze uit. Maar het riekt naar dat dit niet de juiste methodes is...

begin een donkerbruin vermoeden te krijgen dat ik een foutieve weg ben ingeslagen.. Wat zou een logische eerste stap zijn?....

Helpt het als ik mijn DB opbouw toon:

- verenigingen
verenigingId
verenigingNaam
verenigingAdres
verenigingPostcode
verenigingPlaats
verenigingTelefoon
verenigingWebsite
verenigingLogo
verenigingCp
verenigingEmailCp
verenigingMobielCp
verenigingTelefoonCp
verenigingInfo
verenigingTeamId

- teams
teamId
teamNaam
teamCp CP = contactpersoon
teamEmailCp
teamMobielCp
teamTelefoonCp
teamStatus
teamInfo
teamVerenigingId
teamPouleId

- poules
pouleId
pouleLetter

- schema
schemaId
schemaSpeeldatum
schemaTeamAId
schemaTeamBId
schemaPouleId
schemaHd1A
schemaHd2A
schemaHd3A
schemaHd1B
schemaHd2B
schemaHd3B
schemaSetsHdA
schemaSetsHdB

schemaDd1A
schemaDd2A
schemaDd3A
schemaDd1A
schemaDd2A
schemaDd3A
schemaSetsDdA
schemaSetsDdB

schemaMix11A
schemaMix12A
schemaMix13A
schemaMix11A
schemaMix12A
schemaMix13A
schemaSetsMix1A
schemaSetsMix1B

schemaMix21A
schemaMix22A
schemaMix23A
schemaMix21A
schemaMix22A
schemaMix23A
schemaSetsMix2A
schemaSetsMix2B

schemaUitslagA
schemaUitslagB


- gebruikers
gebruikerId
gebruikerNaam
gebruikerEmail
gebruikerWachtwoord
gebruikerStatus
gebruikerDatum
 
- Ariën  -
Beheerder

- Ariën -

14/10/2018 21:57:43
Quote Anchor link
Maar wat plaats je voor inhoud in die verschillende schema velden, en wat is SchemaDd,schemaHd, schemaSetsMix, en schemaMix? Hier valt zeker een hoop uit te splitsen.
 
- DHU -

- DHU -

14/10/2018 22:05:04
Quote Anchor link
schema moet je zien als een wedstrijd... Hd staat voor Heren dubbel, Dd Dames dubbel Mix1 voor het 1e mix team en Mix2 voor het twee mix team.


als voorbeeld
in de velden:

schemaHd1A uitslag 1e set team A
schemaHd2A uitslag 2e set team A
schemaHd3A uitslag 3e set team A

schemaHd1B uitslag 1e set team B
schemaHd2B uitslag 2e set team B
schemaHd3B uitslag 3e set team B

schemaSetsHdA # gewonnen sets team A
schemaSetsHdB # gewonnen sets team B

al deze velden bevatten een numeriek waarden.

ik zou niet weten hoe ik dit verder moet uitsplitsen
 
- Ariën  -
Beheerder

- Ariën -

14/10/2018 22:08:58
Quote Anchor link
Dan zou dit beter kunnen extraheren naar een tabel met wedstrijden.

Google anders eens naar 'wedstrijd schema's SQL' op Google. Er valt een hoop over te lezen.
Gewijzigd op 14/10/2018 22:15:25 door - Ariën -
 
- DHU -

- DHU -

14/10/2018 22:15:19
Quote Anchor link
nu raak je me kwijt ;-)

ben duidelijk niet op de goede weg... en ik waardeer alle opmerkingen hoor maar het het heeft voor mij een te hoog 'wiskunde' gehalte...

ik hoop dat iemand meeleest en

Toevoeging op 14/10/2018 22:16:48:

me wegwijs wil maken en de stappen kan toeilchte die ik moet gaan zetten... die hoeft natuurlijk niet helemaal voor niks hoor. Je zou er een paar ouwe mensies mee helpen ;-) die graag een potje tennis spelen..
 
- Ariën  -
Beheerder

- Ariën -

14/10/2018 22:17:03
Quote Anchor link
Google anders eens naar 'wedstrijd schema's SQL' op Google. Er valt een hoop over te lezen. Ook het genoemde artikel over Databasenormalisatie is handig om door te lezen.
 
Rob Doemaarwat

Rob Doemaarwat

14/10/2018 22:25:58
Quote Anchor link
Maar als we even met dit datamodel verder gaan ... Met die schemaSetsHdA, schemaSetsDdA, schemaSetsMix1A en schemaSetsMix2A kun je dan toch ook meteen de einduitslag/-score bepalen (in PHP)? Doe je dat nu al niet met die kolommen schemaUitslagA en -B?

Voor de ranking tel je dan gewoon de punten in die kolom op voor elk team.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
select teams.*,
  (select sum(schemaUitslagA) from schema where schemaTeamA = team.teamId) +
  (select sum(schemaUitslagB) from schema where schemaTeamB = team.teamId) as score
from teams
order by score desc

Ik tel dus de totaal score op voor het geval het team "A" is, en voor het geval ze "B" zijn. Vervolgens sorteer ik op die (totaal) score = de ranking (?).

Wat Ariën bedoelt is de data wat verder uit splitsen:
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
schema:
- schemaId
- schemaTeamAId
- schemaTeamBId
- schemaUitslagA
- schemaUitslagB

en dan in een aparte tabel "games"
- gameId
- gameSchemaId //verwijzing naar bovenstaande tabel
- gameType //type spel: Hd,Dd,X1,X2
- gameSetsA //voorheen dus schemaSetsHdA varianten
- gameSetsB //dito voor B

en dan nog weer een aparte tabel "sets"
- setId
- setGameId //verwijzing naar bovenstaande tabel
- setNummer //1,2 of 3
- setUitslagA //voorheen dus schemaHd1A varianten
- setUitslagB //dito voor B


Dit maakt je data gestructureerder. En mocht je bijvoorbeeld een keer meer dan 3 sets spelen (volgens mij doen de pro's dat wel), dan hoef je niet weer een sloot extra kolommen aan je tabel toe te voegen, maar nummer je gewoon je setNummer door. Effectief sla je dus dezelfde data op, maar met wat meer structuur, en wat minder "in de breedte", en wat minder "groeiproblemen" als er een keer wat wijzigt.
Gewijzigd op 14/10/2018 22:27:19 door Rob Doemaarwat
 
- DHU -

- DHU -

15/10/2018 07:33:05
Quote Anchor link
Ron,

Onwijs bedankt voor de toelichting. Als ik het zo lees kan ik het een beetje begrijpen.. .Echter het omzetten hoe ik die moet verwerken. dan blokt het bij me...

Ik denk dat ik er beter aan doe om te stoppen voor deze (nu blijkt) een veel te hoge gegrepen klus... Ik denk dat ze maar moeten overstappen naar een Excel sheetje of zo ...

Eer ik op het nivo ben dat ik kan toepassen wat jullie me nu allen vertellen ben ik een tijdje verder en die is er niet. Jammer maar helaas...

ik zal ze het nieuws overbrengen
 
- DHU -

- DHU -

17/10/2018 12:03:16
Quote Anchor link
Update: bestuur was wel teleurgesteld maar hebben begrip. Het is een non-profit clubje die graag de 45+ plussers aan het tennissen wil krijgen dmv een tenniscompetitie. Tot nu hield iemand uitslagen en standen bij via PDF bestanden en plaatste deze op een Joomla omgeving. Echter deze man is vrij recentelijk overleden en staat men tegen de muur en kunnen ze eigelijk niets meer.

Toen hebben ze mij benaderd. Ik heb de ruimte niet om het via de methode te doen. Nu heb ik wel de nodig HTML ervaring maar daar kom ik er niet mee.. HEb ook wel de nodige Joomla ervaring maar dat is wel heel erg overkill. Nu kan ik beetje php lezen.. Begrijp redelijk de codering wel als ik het lees maar ben dus klaarblijkelijk nog niet toe om zelfstandig wat te bouwen... Is er misschien iemand die bereid is om mij hierbij te helpen. Hier mag best een kleine vergoeding tegenover staan hoor als het maar niet zo heel veel is. Ze zijn nl total non-profit en alles moet uit eigen zak betaald worden.

Hoop op positieve reacties.
 
Rob Doemaarwat

Rob Doemaarwat

17/10/2018 12:11:15
Quote Anchor link
Is dit niks: https://www.toernooi.nl/ (kant & klaar - tegen een kleine vergoeding)?
 
- DHU -

- DHU -

17/10/2018 12:24:06
Quote Anchor link
Hoi Rob... thnx.. Daar werk ik al wee voor de eigen club. Is behoorlijk complicated.. vooral voor die oudjes. Deze optie is besproken. Daarnaast zit daar een jaarlijkse vergoeding aan vast zie je verplicht bent af te nemen. Anders houdt het op met werken. Het wordt bij officiele knltb verenigingen wel vaker gebruikt.
 
- Ariën  -
Beheerder

- Ariën -

17/10/2018 15:06:25
Quote Anchor link
Heeft Toernooi.nl geen API zodat je dit kan integreren in je eigen site? Dan kan je het minder 'complicated' maken voor de oudjes.
 
- DHU -

- DHU -

17/10/2018 15:38:43
Quote Anchor link
helaas...
 

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.