Hoi

Ik zit met de volgende uitdaging.
Ik heb een database met onder andere 2 tabellen: teams en rondeteams. Elke week worden de teams uit de tabel teams weggeschreven naar rondeteams.

Elk team bestaat uit 12 spelers.

In de tabel rondeteams staan dus per week de spelernamen van elk team vermeld. Wat ik nu graag wil is een overzicht maken van welke namen in de afgelopen weken allemaal zijn geselecteerd. Dit komt dus uit de tabel rondeteams.

Om de gegevens te selecteren, heb ik de volgende query:

<?php
$sql = "SELECT speler1,speler2,speler3,speler4,speler5,speler6,speler7,speler8,speler9,speler10,speler11,speler12";
$sql .= "FROM rondeteams";
$sql .= "WHERE teamnaam='Testteam'";
?>

Uit bovenstaande gegevens wil ik dan dat van elke speler het aantal weergegeven wordt. Ik dacht zelf dit te doen met array_count_values().

Ik krijg het resultaat uit bovenstaande query echter niet in één array.

Kan iemand mij misschien verder op weg helpen?



Heb inmiddels de volgende (vrij eenvoudige) oplossing bedacht gebruik maken van de functie array_unshift():

<?php
$sql = "SELECT speler1,speler2,speler3,speler4,speler5,speler6,speler7,speler8,speler9,speler10,speler11,speler12";
$sql .= "FROM rondeteams";
$sql .= "WHERE teamnaam='Testteam'";

$resultaat = mysql_query($sql);

$aantal_spelers = array();

while($row = mysql_fetch_array($resultaat))
{

array_unshift($aantal_spelers,
$row['speler1'],
$row['speler2'],
$row['speler3'],
$row['speler4'],
$row['speler5'],
$row['speler6'],
$row['speler7'],
$row['speler8'],
$row['speler9'],
$row['speler10'],
$row['speler11'],
$row['speler12']);

}

$tel_aantal = array_count_values($aantal_spelers);
?>
Tja, dit zal tot op zeker hoogte werken. Maar wat nu als je 2 spelers met dezelfde naam hebt? Het kan best zo zijn de naam Jan twee keer voorkomt, alleen wordt hij op jouw manier niet apart geteld.

En hoe behandel je de verschillende versies van dezelfde naam: Jan, jan, JAN? Een spatie die per ongeluk in een naam staan zal ook een probleem opleveren, want 'Jan' is immers niet hetzelfde als ' Jan'.

Kortom, je zult of al die uitzonderingen af moeten vangen in je PHP script, of je zult je datamodel aan moeten gaan passen. Iets dat naar mijn mening nog steeds slimmer is...
Deze problemen zullen zich niet voordoen.
De teams zijn namelijk gevormd vanuit een tabel 'spelers'. Elke naam is derhalve per definite uniek.

Eventuele uitzonderingen zjn al afgevangen bij het aanmaken van de teams zelf.
Idd Jan
Jan jij weet nog hoe ik ben begonnen met Niets en dat ik door simpele vraagjes nu toch men site op poten heb gekregen hé ?

Ik heb er veel van geleerd :)

Neem er dus een voorbeeld aan
Sorry maar dit vind ik echt onzin.

Er wordt hier een vraag gesteld. En gelijk wordt er met woorden gegooid als "deugt van geen kant", "zet maar bij het grofvuil", "aanklooien".
En dit terwijl er niet eens wordt gevraagd waarom voor een bepaalde opzet is gekozen.

Er staat veel nuttige info op deze site, maar als er op een dergelijke manier gereageerd wordt, gaan bij mij de nekharen overeind staan.

Ik zeg niet dat ik het allemaal op de beste en enig goede manier doe, maar er zijn nog altijd meerdere wegen die naar Rome leiden......
Absoluut. En het staat je vrij om elke weg te kiezen. En als je onderweg het even niet meer weet, kun je ook de weg vragen. En ook dat advies mag je aan je laars lappen. We leven tenslotte in een vrij land.
Tuurlijk, helemaal mee eens.

Maar begrijp je wat ik zeg over de manier waarop iets gebracht wordt?
Ik bedoel, als ik iets beter anders kan doen hoor ik het graag. Kritiek is nooit leuk, maar wel nuttig.

Maar je kan ook proberen op een normale manier te reageren.
Hoe er op mijn vraag gereageerd werd, vind ik niet normaal.
Ja, je punt is duidelijk. Frank is wat kort door de bocht soms. Blance formuleert wat voorzichtiger.

Maar wat mij interesseert: ben je nu op nieuwe ideeën gebracht? Denk je bij jezelf: ik moet toch eens wat over normalisatie gaan lezen? Of ben je blij met elke oplossing, als het maar werkt?
Allebei eigenlijk:

1) ik ben blij dat ik inmiddels een oplossing gevonden heb voor waar ik mee bezig ben.

2) Ik heb vanavond idd al het e.e.a. gelezen over normalisatie en ik ga bekijken of ik dit verder kan en ga toepassen in mijn huidige site.

Reageren