stian90_2 Skrevet 29. juni 2006 Del Skrevet 29. juni 2006 Hei, jeg har en tabell i en mysql database som heter blomster. På siden min har alle brukerne en egen id, og vær gang noen får/kjøper en blomst så blir det satt inn i blomster raden, men jeg vil altså finne ut hvordan bruker som har fått flest blomser, og sette en liste på dette med f.eks 5 stykker ? hvordan i huleste skal jeg gjøre det, jeg tenke på og kjøpe en while på alle bruker tabellen, og telle blomster for hvær eneste bruker og deretter returnere og gjøre ett eller annet ? Jeg sitter rett og slett FAST! Lenke til kommentar
endrebjo Skrevet 29. juni 2006 Del Skrevet 29. juni 2006 (endret) Hvordan ser tabellen/databasen din ut? Hvilke kolonner har den? Kanskje du kunne satt opp databasen på en annen måte? Endret 29. juni 2006 av endrebjorsvik Lenke til kommentar
hockey500 Skrevet 29. juni 2006 Del Skrevet 29. juni 2006 når man spør om slikt er det ofte lurt å kjøre DESCRIBE `blomster`; da blir det enklere å forstå akkurat hvordan tabellen ser ut. Lenke til kommentar
stian90_2 Skrevet 29. juni 2006 Forfatter Del Skrevet 29. juni 2006 den er utrolig enkel: realid ( brukeren sin id ) tid ( når brukeren kjøpte den) id ( joda hver rad har sin id ) så når jeg skulle finne brukeren sine blomster var det ikke værre en $sql = mysql_query("SELECT id FROM blomster WHERE realid='$brukerid'"); $num = mysql_num_rows($sql); echo "$brukerid har $num blomster"; enkelt og greit ^^ jeg satt bare inn en rad for hver gang han kjøpte/fikk en blomt, isdtedenfor og oppdatere bruker tabellen om hvor mange blomster han har, vet dette høres tungvindt ut, men kommer til nytte senere, når det kommer inn type osv ^^ Lenke til kommentar
endrebjo Skrevet 29. juni 2006 Del Skrevet 29. juni 2006 (endret) Det du spør om gjøres veldig enkelt i MySQL, og hadde vært åpenbart hvis du hadde kunnet det skikkelig. Følgende spørring teller hvor mange oppføringer det er av hver realid og presenterer det i en midlertidig kolonne kalt COUNT(*): SELECT realid, COUNT(*) FROM blomster GROUP BY realid For å hente ut de fem som har fått mest blomster bruker du følgende PHP-kode: $sql = mysql_query("SELECT realid, COUNT(*) FROM blomster GROUP BY realid ORDER BY COUNT(*) DESC LIMIT 5"); while ($result = mysql_fetch_array($sql)) { echo "{$result['realid']} har fått {$result['COUNT(*)']} blomster"; } Den samme metoden kan brukes til å finne hvor mange blomster én bruker har fått. Det er bare til å slenge inn en WHERE. Endret 29. juni 2006 av endrebjorsvik Lenke til kommentar
stian90_2 Skrevet 29. juni 2006 Forfatter Del Skrevet 29. juni 2006 herlig nej jeg kan ikke så mye mysql at det gjør noe, har for det meste prøvd og lært meg grunnlegende php først, scanne mapper, laste opp bilder osv slike ting, så nå jobber jeg med databaser ;D Lenke til kommentar
endrebjo Skrevet 29. juni 2006 Del Skrevet 29. juni 2006 Tutorialen på MySQL.org er veldig fin å begynne med. En fin regel er å la MySQL gjøre mest mulig før du sender det over til PHP. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå