Doelpunten Negatief bij bepaalde gebruiker

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

JunkieXP

JunkieXP

07/11/2007 21:28:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
SELECT SUM(s.goals),
FROM matches m, statics s
WHERE m.played = 1
AND m.match_id = s.match_id
GROUP BY m.match_id


Dit is de code die ik nu gebruik, echter kan de player_id (die hier niet wordt weergegeven gezien het een totaal is) ook 1001 zijn, deze code staat voor tegenstander (iemand een andere suggesties om zoiets aan te geven zonder een ver getal in je id's te gebruiken hiervoor), wanneer dit dus het geval is dienen deze goals van het totaal aantal goals afgetrokken te worden.

Nu is dit zeer eenvoudig mogelijk door een kolom toe te voegen aan de tabel of een extra sql query te gebruiken en deze dmv PHP van elkaar af te trekken, echter vroeg ik me af of het ook direct mogelijk is?
 
PHP hulp

PHP hulp

17/01/2021 06:59:36
 
Joren de Wit

Joren de Wit

07/11/2007 23:49:00
Quote Anchor link
Wat je wilt zal vast wel in een query kunnen, maar ik begrijp eerlijk gezegd weinig van je verhaal.

Je hebt het over player_id's die eerst niet weergegeven worden en vervolgens ook 1001 kunnen zijn om een tegenstander aan te geven. Hoe kun je nou aan een id herkennen of het een tegenstander is of niet?

En ik neem aan dat je bedoelt dat het aantal doelpunten gemaakt door de tegenstander afgetrokken moet worden van het totaal aantal gemaakte doelpunten? Dat is toch hetzelfde als het aantal doelpunten dat door de ene partij gemaakt is?
 
Gerben Jacobs

Gerben Jacobs

08/11/2007 09:41:00
Quote Anchor link
Ik heb wel een suggestie om dat aan te geven; een nieuw veld met een id naar een team/partij.

En als ik het zo bekijk dat jij een id dat toevallig 1001 is gebruikt om iets te achterhalen, lijkt het me ook geen slecht idee om ff naar deze tut te kijken over normaliseren: http://www.phphulp.nl/php/tutorials/3/150/259/


Off-topic: We moeten een snelcode. Bijv. [normaliseren] dat ie automatisch de link plaatst!
 
JunkieXP

JunkieXP

08/11/2007 10:10:00
Quote Anchor link
Het is zo dat op het moment van Spreken player_id 1 tot 12 gevuld zijn door spelers van mijn team, de site is dan ook van 1 vereniging en vandaar dat ik 1001 als tegenstander code heb gekozen, ik kon er ook voor kiezen de tegenstanders in een tabel erbij te zetten maar heb dit niet gedaan. Ik heb id 1001 gekozen omdat deze verre van het totaal aantal spelers binnen het complete team staat en dus de kans miniem is dat er ooit een speler dit id krijgt toegewezen. Er zal wel een officiele manier voor zijn maar deze is mij niet bekend dus vandaar deze oplossing (suggesties zijn echter welkom).

Ik heb tijden lang mijn Databases moeten normaliseren dus weet ongeveer nog wel wat hier de voordelen van zijn, echter werkt het voor mij niet om eigen projecten te normaliseren, dat is een persoonlijk dingetje wat ik nu eenmaal niet in me heb.
 
Joren de Wit

Joren de Wit

08/11/2007 10:15:00
Quote Anchor link
In dit geval heb je dus 1 tabel met spelers nodig. In deze tabel heb je naast het id van elke speler (dat alleen gebruikt wordt om een speler aan te duiden) ook nog een id dat de vereniging aangeeft waarbij een speler speelt.

Dit id verwijst naar een record in een aparte tabel waarin je alle verenigingen opgeslagen hebt:

verenigingen
---------------
id
vereniging

spelers
---------
id
naam
vereniging_id

Wellicht dat je hier nog een stap tussen wilt, namelijk het team waarin een speler speelt. De spelertabel krijgt dan nog een extra kolom dat het team aangeeft.
 
JunkieXP

JunkieXP

08/11/2007 17:51:00
Quote Anchor link
@Blanche: Hartelijk bedankt voor je reactie, maar het betreft 1 vereniging met daarin 1 team. Waar het nu echter om gaat is wanneer

goals
-----------------
id = auto_increment
speler_id = 1001 (dus tegenstander)
wedstrijd_id = 12 (link naar tabel matches, met daarin het wedstrijdschema)
doelpunten = 2
eigendoel = 0
penalty = 0

goals
-----------------
id = auto_increment
speler_id = 3 (dus eigen speler)
wedstrijd_id = 12 (link naar tabel matches, met daarin het wedstrijdschema)
doelpunten = 3
eigendoel = 0
penalty = 0

er dmv één query een resultaat uitkomt waar dus de "eigen speler" goals bij elkaar opgeteld (sum()) en "tegenstander (1001, dit is een entry voor totaal aantal doelpunten van dat team)" goals apart van elkaar worden gegenereerd.
 
Joren de Wit

Joren de Wit

08/11/2007 18:01:00
Quote Anchor link
Maar zoals ik al zei: het id heeft voor de database helemaal geen waarde. Het is dus ook onmogelijk om aan dat id te herkennen of het een eigen speler of een tegenstander is.

Dat jij dat weet doordat id's van een tegenstander boven de 1000 liggen, is leuk maar niet logisch. En het is ook niet logisch om die voorwaarde in je query op te nemen.

Het lijkt mij dat voor een wedstrijd minimaal twee teams nodig zijn. In je datamodel zul je dus meerdere teams op moeten nemen en dus een aparte tabel.
 



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.