login  Naam:   Wachtwoord: 
Registreer je!
 Forum

unieke waarde

Offline webstab - 04/03/2005 19:51
Avatar van webstabPHP ver gevorderde
  1. $sql = "SELECT * FROM onlinegames WHERE gameid='$gameid' ORDER BY score DESC LIMIT 5";

Ik wil dat de kolom "userid" uniek is.
bv met devolgende waarde
Citaat:
id=1,userid=2,score=15,gameid=3
id=2,userid=4,score=10,gameid=3
id=3,userid=2,score=17,gameid=3

Wanneer ik dit nu wil laten rangschikken volgens score krijg je dit
Citaat:
id=3,userid=2,score=17,gameid=3
id=1,userid=2,score=15,gameid=3
id=2,userid=4,score=10,gameid=3

Maar de rij met id=1 zou hij niet mogen weergeven omdat userid='2' al is voorgekomen.

Ik heb het al geprobeerd met DISTINCT maar toen kreeg ik rare errors.
Hoe doe ik dit nu precies?

7 antwoorden

Gesponsorde links
Offline nemesiskoen - 30/11/1999 00:00
Avatar van nemesiskoen Gouden medaille

PHP expert
mss in een array steken met al_geweeste_gegevensrnen dan gaaan kijken of het id al in de array staat, zoniet-weergeven, zowel-niet weergevenrnrnniet getestrn[code]phprn$sql = MySQL_query(SELECT FROM onlinegames WHERE gameid='$gameid' ORDER BY score DESC LIMIT 5);rnwhile($obj = MySQL_fetch_object($sql)){rn if(in_array($obj-gameid, $al_geweeste_gegevens)){rn $al_geweeste_gegevens[] = $obj-gemeid;rn hier gegevens weergevenrn }rn}rnrn[code]
Offline webstab - 30/11/1999 00:00
Avatar van webstab PHP ver gevorderde merci, maar is het niet mogelijk om dat in je query te zetten.rnDat bespaart me veel aanpassings werk
Offline numlockrond - 30/11/1999 00:00
Avatar van numlockrond Onbekend [quote]Ik wil dat de kolom userid uniek is.[quote] Dat geeft je hem de eigenschap (of noemen ze dat een index) UNIQUE, maar dan kan er dus ook niet meer 2x hetzelfde instaan en dat is niet wat jij wilt volgens mij.rnrnzo moet het ook kunnenrn[code]$sql = SELECT DISTINCT userid, id, score, gameid FROM onlinegames WHERE gameid='.$gameid.' ORDER BY score DESC LIMIT 5;[code]
Offline CelestialCelebi - 30/11/1999 00:00
Avatar van CelestialCelebi PHP gevorderde Eigenschap UNIQUE is dat.rnrnEn DISTINCT kan je maar op 1 kolom toepassen voor zover ik weet, dus ik ben bang dat dat niet gaat werken..
Offline webstab - 30/11/1999 00:00
Avatar van webstab PHP ver gevorderde Ik zal is heel mijn probleem uitleggen.rnIk heb online games op mijn site staan en leden kunnen deze spelen. Hun score per maand wordt bijgehouden. (dus na ieder spelmaand een UPDATEquery). Maar ik zou graag een rangschikking van Beste ooit.rnMaar iedere user mag daar maar 1 keer instaan met zijn beste score
Offline Scott - 30/11/1999 00:00
Avatar van Scott Gouden medaille

PHP ver gevorderde
SELECT FROM onlinegames WHERE gameid='$gameid' GROUP BY userid ORDER BY score DESC LIMIT 5
Offline webstab - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van webstab PHP ver gevorderde Na heel lang proberen is het nu eindelijk gelukt.rn[code]phprn$sql1 = SELECT MAX(score),userid FROM onlinegames WHERE gameid=' . $_GET['id'] . ' GROUP BY userid ORDER BY score DESC;rn$query = mysql_query($sql1);rn while ($obj = mysql_fetch_object($query)) {rnblablablarn $obj-userid werkt welrn $obj-score werkt niet (wss door die max)rn} [code]rnHet weergeven van het userid lukt perfect,maar de score wordt niet weergegeven.(wss door die max) Hoe los ik dit op
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.198s