Hallo,
ik probeer een script te maken die bijhoud welke speler er in welke server speelt. Nu heb ik ongeveer zo'n database:
-id
-speler
-server
Nu kan een speler is meerdere servers spelen en komt een speler dus ook meerdere keren voor in de database. Ik gebruik dan ongeveer een query als: (de echte is vrij lang)
<? SELECT * FROM spelers GROUP BY `speler` ?>
Nu krijg ik keurig alle spelers, en met COUNT(player) kan ik zien in hoeveel servers hij speelt.
Nu wil ik dat ik kan sellecteren op server, dus heb ik aan 2 dingen gedacht:
<?
SELECT * FROM spelers WHERE server = '$server' GROUP BY `speler`
SELECT * FROM spelers GROUP BY `speler` HAVING server = '$server'
?>
Bij de eerste gaat dit goed, het punt is alleen dat COUNT(player) dan niet meer werkt, het aantal servers is nog maar 1 terwijl dit meer hoort te zijn omdat WHERE alle andere gefiltert heeft.
Bij HAVING gaat dit ook niet goed. Als ik daar 3 (server 3) invul krijg ik mezelf te zien, maar als ik daar 1 invul zie ik mezelf niet. Terwijl ik met server 1 en 3 beide in de database sta. Wat doe ik verkeert? :o
Owjah, mocht het nuttig zijn, dit is me hele query:
<? $query = "SELECT id,player,server,time,average_ping,SUM(average_ping),SUM(times),COUNT(player),COUNT(server),AVG(average_ping) AS averages FROM avarages WHERE player LIKE '%$search%' AND average_ping<'999' GROUP BY `player` HAVING server=1 ORDER BY $order1 $asc LIMIT $limit"; ?>
1.843 views