Je ziet dat UserID 3 rows heeft,
2 keer met varid3 en 1 keer met var_id 2.
UserID 2 zelf heeft maar 1 row waarvan varid 9 is.
nu zou de qry het volgende moeten doen.
Hij moet bij de desbetreffende user (bij deze nemen we userid 1) kijken en optellen hoeveel verschillende varid's hij heeft.
als de qry uitgevoerd zou worden komen we dit uit:
userid 1 = 2 (aangezien hij 3 en 2 heeft. Dat hij varid 3 2 keer heeft maakt niet uit.
Iemand een id hoe de qry er uit zou moeten zien?
Note: de waarde van varid kan van 1 tot en met 500 gaan.
SELECT
user_id,
COUNT(DISTINCT(var_id)) AS aantal
FROM
tabel
GROUP BY
user_id
Dit is waarschijnlijk de query die je zoekt. Je moet je alleen afvragen hoe het kan dat data dubbel in je tabel kan komen te staan? Zoals ik het nu ziet zijn de records met id 3 en 4 identiek aan elkaar (op het id na dan), en kan bijna niet kloppen...
Dat je in je query DISTINCT moet gebruiken is ook vaak al een voorteken van een incorrect datamodel. Iets om dus zeker even aandacht aan te besteden...
Als de php file met de betreffende bovenstaande gegevens zou gerunt worden en het is userID 1 dan zou de uitkomst het volgende zijn: 5
Want hij heeft slechts 5 unieke nummers: 150, 4, 151, 1, 7
Moest userID 2 de pagina runnen zou de uitkomst slechts 1 zijn.
Want hij heeft maar 1 unieke row. (namelijk 1)
Die waarde (bij userID 1 dus 5) die door de SQL (wat ik dus wil weten) zal 'opgeslagen' worden als $totalu
$totalu = ....
hopelijk heb je hier meer aan.
als je nog iets nodig hebt pls tell.
@Blanche: ik zag je post pas na mijn bovenstaande post.
Ik ga hem even uitproberen.
Dat je meerdere dezelfde varid's hebt is in dit gebeuren wel van toepassing.
Het is een vreemde tabel. Maar het werkt tot nu toe ^^.
this moeilijk uit te leggen als je half nederlands en half engels kan. (geen moedertaal -_-)
Ik gebruik gewoon Mysql. 'addtime' is bij mijn vraag niet belangrijk.
Timestamp bied bepaalde functies die ik bij andere toepassingen nodig heb.
Edit: QRY gevonden.
Vraag beantwoord
@blach: na aanpassing van je sql werkt het. Dank je.
Antwoord:
SELECT COUNT(DISTINCT(varid)) FROM *table* WHERE user_id='{$user['id']}