uitslagen + stand met MySQL

Door Robert Deiman, 22 jaar geleden, 10.024x bekeken

Met deze 3 scriptjes, die je zelf aan kan passen aan je eigen sport kan je uitslagen toevoegen, of bewerken, met een druk op een link wordt de stand berekend.

verwerken.php
Deze pagina verwerkt (zoals de naam al doet vermoeden) de uitslagen die in de tabel staan. Hij reset eerst de stand, zodat ook aanpassingen/ veranderingen in uitslagen mogelijk zijn.

LET OP!! Zet deze bestanden achter een inlogsysteem, zodat niet iedereen in je database kan!

uitslagen.php
Op deze pagina krijg je een overzicht in een tabel met alle wedstrijden die in de tabel wedstrijden staan. Achter elk record staat een link naar uitslagen_bewerken.php, met de id van het record uit de wedstrijden tabel. Alleen de uitslag moet dan nog worden ingevuld.

uitslagen_bewerken.php
Op deze pagina vindt je een formulier waar je standen bij kan invullen van een vantevoren geselecteerde wedstrijd.


De SQL database:

CREATE TABLE `stand` (
`id` smallint(6) NOT NULL auto_increment,
`team` varchar(15) NOT NULL default '',
`punten` tinyint(4) NOT NULL default '0',
`wedstrijden` tinyint(2) NOT NULL default '0',
`winst` tinyint(2) NOT NULL default '0',
`gelijk` tinyint(2) NOT NULL default '0',
`verlies` tinyint(2) NOT NULL default '0',
`voor` tinyint(3) NOT NULL default '0',
`tegen` tinyint(3) NOT NULL default '0',
PRIMARY KEY (`id`)
)

CREATE TABLE `wedstrijden` (
`id` tinyint(4) NOT NULL auto_increment,
`thuis` varchar(15) NOT NULL default '',
`uit` varchar(15) NOT NULL default '',
`doelthuis` tinyint(2) default NULL,
`doeluit` tinyint(2) default NULL,
`datum` date NOT NULL default '0000-00-00',
PRIMARY KEY (`id`)
)

Standen haal je op deze manier uit de tabel, zodat teams ook meteen worden gesorteerd:
$standen_SQL="SELECT * FROM stand ORDER BY punten DESC, wedstrijden, voor - tegen DESC ";

Gesponsorde koppelingen

PHP script bestanden

  1. uitslagen-stand-met-mysql

 

Er zijn 39 reacties op 'Data verwerking'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


22 jaar geleden
 
0 +1 -0 -1
Grappig. Eindelijk eens een script waar niet over te klagen valt :)
Robert Deiman
Robert Deiman
22 jaar geleden
 
0 +1 -0 -1
Dank voor het compliment Sebastiaan.. :)

Hoe bedoel je dat er niet over te klagen valt? Bedoel je dat het er netjes uit ziet? haha, het is geen OOP he :P


22 jaar geleden
 
0 +1 -0 -1
Quote:
Hoe bedoel je dat er niet over te klagen valt? Bedoel je dat het er netjes uit ziet?
Ja, je springt in, en het is zelfgemaakt zoals weinig scripts hier, je gebruikt < ?php en geen < ? en dat is ook goed :)

Quote:
haha, het is geen OOP he :P

Okee. 1 Minpuntje dan :p
Robert Deiman
Robert Deiman
22 jaar geleden
 
0 +1 -0 -1
Das een groot compliment.. en idd heb ik het zelf gemaakt.. was projectje dat ik heb gedaan om PHP onder de knie te krijgen.. En toen vond ik PHP eiglijk wel leuk, ben erin blijven hangen. :)


22 jaar geleden
 
0 +1 -0 -1
PHP is ook leuk. Lekker makkelijk en overzichtelijk(als je het goed doet). Zeker in vergelijking met dat asp! Maar PHP is nog leuker met twee maal een 'o' en 1 'p' :p
Robert Deiman
Robert Deiman
22 jaar geleden
 
0 +1 -0 -1
Jah, Sebastiaan, we weten dat je een OOP fan bent. Ik ken helemaal nog geen OOP, de PHP die ik heb geleerd was gewoon puur op functionaliteiten, omdat ik eigenlijk helemaal geen programmeertalen krijg.. Maar goed ;) Haha, hou het maar lekker bij OOP(S)
Bo az
Bo az
22 jaar geleden
 
0 +1 -0 -1
Het ziet er idd goed uit, maar ik wil toch een opmerking maken:

Dit:
<td class="stdtextconfig">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $uitslag['thuis'] ?>
</td>
kan ook zo:
<td class="stdtextconfig">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?= $uitslag['thuis'] ?>
</td>
Robert Deiman
Robert Deiman
22 jaar geleden
 
0 +1 -0 -1
@Boaz
Tjah.. maar dat wist ik nog niet toen ik het script maakte, daar ben ik pas later achter gekomen :) Maar wel een goeie, ik zal he wel aanpassen :)


22 jaar geleden
 
0 +1 -0 -1
Nee, dat is niet goed ivm met de xml compatiblility, je hoort
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php ... ?>
te gebruiken
Robert Deiman
Robert Deiman
22 jaar geleden
 
0 +1 -0 -1
Haha, net te laat Sebastiaan, maar ik ze het wel weer terug :S Jullie houden me wel bezig zo :)
PHP erik
PHP erik
22 jaar geleden
 
0 +1 -0 -1
Juist een script als deze is geschikt voor OOP. Het is 'uitbreidingsgevoelig' (men wil dit script denk ik vaak uitbreiden) en je kunt zo makkelijk berekeningen scheiden van output.

Ziet er verder wel goed uit.
Pim Vernooij
Pim Vernooij
22 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?= $string ?>
kan toch wel gewoon ?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $string; ?>
kan niet voor zover ik weet
Robert Deiman
Robert Deiman
22 jaar geleden
 
0 +1 -0 -1
@Pim, waarom zou dat niet kunnen? Het werkt allemaal prima.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?= $string ?>
kan ook wel, maar Sebastiaan begon al over de xml compatibility (xhtml??)

@Erik
Ik weet dat juist zo'n script geschikt is voor OOP, maar daar heb ik me nog niet in verdiept. Misschien leuk projectje voor jou?
Dutchcamel
dutchcamel
22 jaar geleden
 
0 +1 -0 -1
Als dan toch iedereen over dit soort dingen bezig is. In een paar van je queries staan variabelen niet buiten quotes. (Bij het stuk '// de tabel updaten voor deze wedstrijd')
Verder, over SQL injection gesproken:
$SQL_uitslag="SELECT * FROM wedstrijden WHERE id=" . $_GET['id'];

Behalve dat ziet het script er heel goed uit. Ik heb het niet getest maar als het ook goed werkt kan het voor veel mensen goed van pas komen :)
Robert Deiman
Robert Deiman
22 jaar geleden
 
0 +1 -0 -1
@DutchCamel
Euh, ik ga er wel vanuit dat het in een beveiligd deel van de site zit he, ik heb het zelf in een mapje admin zitten die met .htaccess alleen voor mij beschikbaar is, dus dan geen sql injection ;) ('k ga er niet vanuit dat ik dat zelf doe :P)
Maar goed, dat van die vars buiten quotes, heb je op zich wel een punt, maar goed zo werkt het ook, maar niet helemaal netjes he.. Ik pas het aan :)

EDIT:
Is aangepast, nu variabelen netjes buiten quotes zoals het hoort :)


22 jaar geleden
 
0 +1 -0 -1
@Robert: XMLen XHTML ja

Quote:
Juist een script als deze is geschikt voor OOP. Het is 'uitbreidingsgevoelig' (men wil dit script denk ik vaak uitbreiden) en je kunt zo makkelijk berekeningen scheiden van output.
Eindelijk steun :-D
Robert Deiman
Robert Deiman
22 jaar geleden
 
0 +1 -0 -1
Haha, ik ben het ook wel met jullie eens, zoals ik al zei, maar ik ben geheel onervaren op het gebied van OOP, kan me nog niet erg veel schelen, ik wil me eerst wat in PHP verdiepen, en daarna pas in OOP.
Dutchcamel
dutchcamel
22 jaar geleden
 
0 +1 -0 -1
@Robert weer :)
Ja ok, als je idd alleen zelf bij het bestand kan is het idd niet noodzakelijk om aan SQL injection te denken. Maar als je het script dan online zet zou ik het er wel bij vermelden omdat niet iedereen er aan denkt een admin-only script (om het zo maar te noemen :) ) te beveiligen.
Robert Deiman
Robert Deiman
22 jaar geleden
 
0 +1 -0 -1
@dutchcamel
Heb het erbij gezet. Vond het eigenlijk wel logisch dat je dat in een admin gedeelte (dus achter gesloten deuren) plaatst. Je laat toch niet zomaar iemand op een pagina komen, waarbij je op een verwijder of bewerk link kan komen, maar goed.
Zim Zim
Zim Zim
22 jaar geleden
 
0 +1 -0 -1
Kan iemand mijn vertellen wat OOP (object oriented programming) is. (ja ik weet wat het is (google:P) maar waar ik een tut of wat anders kan vinden wat het priesiese verschil is?


22 jaar geleden
 
0 +1 -0 -1
OP deze site zijn er twee tuts over.
1 over de betekenis en hoe enm waarom, en
1 over de syntax en techniek
Robert Deiman
Robert Deiman
22 jaar geleden
 
Niek Kasius
Niek Kasius
21 jaar geleden
 
0 +1 -0 -1
volgens mij ben je wat vergeten te vermelden in Create Table want er staat namelijk geen Type bij.
Niek Kasius
Niek Kasius
21 jaar geleden
 
0 +1 -0 -1
en of ik het goed begrijp weet niet, maar betekent het onderstaande, dat je als winnaar 4 punten krijgt egaal of je nou uit of thuis speeld?
// wanneer de thuisploeg heeft gewonnen
if ($uitslag['doelthuis'] > $uitslag['doeluit']){
$puntenthuis = 3;
$puntenuit = 0;
$thuiswinst = 1;
$uitwinst = 0;
}
// wanneer er een gelijkspel was
else if ($uitslag['doelthuis'] == $uitslag['doeluit']){
$puntenthuis = 1;
$puntenuit = 1;
$gelijk = 1;
}
// wanneer de thuisploeg heeft verloren
else if ($uitslag['doelthuis'] < $uitslag['doeluit']){
$puntenthuis = 0;
$puntenuit = 3;
$thuiswinst = 0;
$uitwinst = 1;
}

en nogmaals welk type hoord bij die Table
Robert Deiman
Robert Deiman
21 jaar geleden
 
0 +1 -0 -1
Als je die er niet bij zet gebruikt die de standaard waarde niek.. (tenminste nog wel ten tijde van het maken van de tabel)
Werkt het niet gebruik dan de standaardwaarde voor het type.

Verder:
Die $puntenthuis en $puntenuit zijn de punten (zijn er echt maar 3) en die $thuiswinst, $uitwinst en $gelijk was bedoeld voor statistieken en wordt in de query gebruikt om de stand te updaten.

Als $thuiswinst 1 is is $uitwinst 0, wat betekend dat de thuisploeg 1 erbij krijgt in de kolom "gewonnen" (aantal gewonnen wedstrijden)
Niek Kasius
Niek Kasius
20 jaar geleden
 
0 +1 -0 -1
hoezo niks klagen en werkt in een keer, waar is het bestand dan dat hier in die fout vermeld staat?
Warning: include(../opmaak/verbinden.php) [function.include]: failed to open stream: No such file or directory in C:\wamp\www\uitslagen\verwerken.php on line 4
is dat soms een simpel config bestandje? zodat je dacht, dat kan bijna iedeereen zelf wel maken kan, dus vermeld in het maar niet, komen ze vanzelf wel achter!
Robert Deiman
Robert Deiman
20 jaar geleden
 
0 +1 -0 -1
@niek

Ik heb er nu een voorbeeldje in gezet van verbinden.php -> Dit is in principe gewoon een bestandje waarbij je een verbinding aan kan maken naar je sql database. Niets meer en niets minder.
Kijk maar eens onderaan in de code, daar zie je hem nu staan.
Niek Kasius
Niek Kasius
20 jaar geleden
 
0 +1 -0 -1
en wat is dit.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\standen\uitslagen_bewerken.php on line 11

en wat heeft dit te betekenen.
//Script voor het bewerken, toevoegen en verwerken van de uitslagen
$rootdir="../"; en wat is daar de bedoeling van ?
en in uitslagen.php heb ik dat er bij gezet. zonder die $rootdir-"../";
include(verbinden.php");

kwartiertje later
PS.
En volgens mij mis ik tussen
<p>Uitslagen<br>
<span class="infosmallconfig">Met dit formulier kunt u uitslagen invoeren.
en
<input type="submit" name="Submit" value="OK">

een aantal dingen zoals rows en cols, want ik krijg maar een text invul vakje te zien, enkel bij Doelpunten thuis:
ik mag toch aannemen dat dit script niet enkel voor Ajax gemaakt is. en de uitploeg ook wel eens scoort. want van Doelpunten uit: zie ik niks staan.
Robert Deiman
Robert Deiman
20 jaar geleden
 
0 +1 -0 -1
Ik weet wel zeker dat ze er gewoon beiden in staan, heb net nog even gekeken en ik zie ze wel, dus dat klopt niet wat je zegt.
Bij mij draaide het script in een map buiten een ander deel van het script. Daarvoor gebruikte ik $rootdir.

Voor wat betreft die eerdere melding: Het is de bedoeling dat je niet zelf naar uitslagen_bewerken.php gaat, maar dat je dat doet vanuit uitslagen.php
Als je wedstrijden in de tabel hebt staan, dan kan krijg je achter een bepaalde wedstrijd een link te zien via waar je naar uitslagen_bewerken.php gaat waarbij dan een wedstrijdid mee wordt gegeven, zodat je een uitslag in kan vullen voor die wedstrijd.
Niek Kasius
Niek Kasius
20 jaar geleden
 
0 +1 -0 -1
nou ik heb die scripts gewoon gekopiërd en gepakt elk script afzonderlijk uiteraard maar ik krijg maar van twee scripts wat te zien van "uitslagen_bewerkem.php" krijg ik dit te zien.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\standen\uitslagen_bewerken.php on line 11

Uitslagen
Met dit formulier kunt u uitslagen invoeren.

Thuisploeg:
Uitploeg:
Doelpunten thuis: met hier een textvak

en in "uitslagen.php" krijg ik dit te zien.

Uitslagen
Hier volgt een overzicht van alle uitslagen


Thuisploeg Uitploeg Uitslag

de rest is leeg. dus er staat geen voledig script hier vermeld. want waar haal die wedstrijden dan vandaan in uitslagen.php als ik vandaar uit moet werken, die zal ik toch eerst ergens moeten invoegen, als dat er wel bij zou zijn, dan nog klopt het niet in uitslagen_bewerken.php, want zoals ik al boven aangeef krijg ik er alleen maar Thuisploeg:
UItploeg:
en Doelpunten thuis: plus invulvak
mee te zien, en zal de bewerking eenzijdig zijn.
dus als je zegt dat het wel correct werkt zet hier dan ff het volledige script want ik heb dan wel de lagere school niet volledig af gemaakt en op mijn 40e basiskennis wiskunde gedaan en geslaagd, maar zo werkt dat programmaatje echt niet.
ohja en ik heb er zelf maar ff include verbinden erbij gezet in uitslagen.php
Niek Kasius
Niek Kasius
20 jaar geleden
 
0 +1 -0 -1
dus toch ff gewijzigd dat uitslagen_bewerken script ! want ik heb het allemaal ff opnieuw gekopiërd en krijg nu wel doelpunten thuis en uit te zien met een textvak, maar nu vraag ik me toch af waar de namen van de clubs vandaan moeten komen, want in uitslagen blijft het behalve wat ik eerder al aangaf leeg, die komen er toch niet vanzelf in gerold die zal ik toch ergens moeten invoeren, want ook al is het php toveren kan je er niet mee.
En die Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\standen\uitslagen_bewerken.php on line 11
heb ik nog steeds.
Robert Deiman
Robert Deiman
20 jaar geleden
 
0 +1 -0 -1
De teams moet je invullen in de tabel stand, daaruit haalt die ook de teams die je kan gebruiken om wedstrijden aan te maken, en vanuit de tabel wedstrijden haalt die dan de id op, om de naam van een team op te halen.
Ik heb eerlijk waar niets gewijzigd in het script, dus waar het van komt dat je de uitdoelpunten niet zag weet ik niet.
Niek Kasius
Niek Kasius
20 jaar geleden
 
0 +1 -0 -1
ik kreeg dat echt niet te zien, ik zag alleen Thuisploeg:, Uitploeg: en Doelpunten thuis: met alleen daarbij een invulvak! mischien dat je het na september vorig jaar wijzigingen in hebt aan gebracht, ik zou anders niet weten hoe het kan, want zolang heb ik het ongeveer al in een map staan, ik had het toen al eens ff geprobeerd aan de gang te krijgen maar omdat het niet lukte heb ik er verder niet meer naar om gekeken. ik was toen net begonnen een site te maken voor de dartclub, en omdat ik ook competitie manager van nummer 11 vond, maar achteraf gezien toch niet perfect werkt. het werkt opzich wel goed, zolang maar geen fouten maken met de invoer van gegevens want dan kun je alles verwijderen uit je tabellen in je admin en moet je alles opnieuw invoeren. vandaar dat ik het er nu vanaf gegooid heb, en nu nog maar eens proberen jou script aan de praat te krijgen.

En bedoel je met team haal je uit "tabel stand" , dat ik een "insert into" moet maken.
zoiets als dit bijvoorbeeld:
INSERT INTO `stand` VALUES (1, 'PSV', '');
INSERT INTO `stand` VALUES (2, 'Ajax', '');
INSERT INTO `stand` VALUES (3, 'AZ 67 ', ''); enz, enz
als dat zo moet kun je dan ff een regel weergeven, want ik krijg nu deze melding.
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO `stand` VALUES (1, 'psv', '')' at line 15
trouwens ik snap zowiezo niet waarom je nergens teams kan invoegen, want dat als ik het ooit aan de praat krijg, moet ik het bij ieder nieuw speel-seizoen die tabel opnieuw maken
Niek Kasius
Niek Kasius
20 jaar geleden
 
0 +1 -0 -1
nou het hoeft al niet meer! ik heb al een link geplaatst op de site naar de uitslagen en standenlijst van de bond.
EricW.
EricW.
20 jaar geleden
 
0 +1 -0 -1
De SQL database wekrt niet klopt deze wel


CREATE TABLE `stand` (
`id` smallint(6) NOT NULL auto_increment,
`team` varchar(15) NOT NULL default '',
`punten` tinyint(4) NOT NULL default '0',
`wedstrijden` tinyint(2) NOT NULL default '0',
`winst` tinyint(2) NOT NULL default '0',
`gelijk` tinyint(2) NOT NULL default '0',
`verlies` tinyint(2) NOT NULL default '0',
`voor` tinyint(3) NOT NULL default '0',
`tegen` tinyint(3) NOT NULL default '0',
PRIMARY KEY (`id`)
)

CREATE TABLE `wedstrijden` (
`id` tinyint(4) NOT NULL auto_increment,
`thuis` varchar(15) NOT NULL default '',
`uit` varchar(15) NOT NULL default '',
`doelthuis` tinyint(2) default NULL,
`doeluit` tinyint(2) default NULL,
`datum` date NOT NULL default '0000-00-00',
PRIMARY KEY (`id`)
)
Obelix Idefix
Obelix Idefix
20 jaar geleden
 
0 +1 -0 -1
Script lijkt bij mij te werken, totdat ik kies om een uitslag te bewerken/in te voeren. Krijg de beide ploegen en eventuele uitslag te zien (uitslag_bewerken.php). Pas daar de uitslag aan/voer hem in en kies voor OK. Kom dan weer terug op de pagina uitslagen.php, maar de uitslag is niet veranderd. Wel staat in de url de door mij ingevoerde informatie. Hoe/Waar kan ik de tabel updaten? Vermoed dat ik moet gaan werken met $_GET (en update), maar weet niet waar dit in te voegen :(
Robert Deiman
Robert Deiman
20 jaar geleden
 
0 +1 -0 -1
Dit is 1 van mijn 1e scripts geweest, en ik vermoed dat het niet helemaal goed is opgebouwd. Dus ik zal het nog eens opnieuw bouwen, maar ik weet niet wanneer dit klaar is.
Niek Kasius
Niek Kasius
13 jaar geleden
 
0 +1 -0 -1
Ik heb het aan het werken gekregen!!!
heb zelf een team_toevoegen en wedstrijd_toevoegen gemaakt van een ander script en dat werkt ook nog.
alleen kan ik met uitslagen_bewerken geen AZ '67 gebruiken door die '
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Wouter J
Wouter J
13 jaar geleden
 
1 +1 -0 -1
Dit script is 9 jaar oud en gemaakt voor php 4, kleine kans dat deze veilig is.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. uitslagen-stand-met-mysql

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

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.