Gilbert Skrevet 24. mars 2004 Skrevet 24. mars 2004 Altså. Bakgrunn Tabell chat inneholder id,av og text Tidligere har jeg brukt "SELECT av,count(*) as antall FROM chat GROUP BY av ORDER BY antall desc LIMIT 0,5" for å finne ut hvem som er mest aktiv. Men nå har jeg byttet litt om; og heller lagd en kolonne i tabell brukere som heter chat og som blir oppdatert med 1 hver gang brukeren skriver noe i "chatten". Problemstilling Jeg ønsker å overføre det gamle antallet chat-linjer inn i den nye kolonnen. Hver bruker (omtr. 2500) har skrevet inn mellom 500 og 2000 linjer hver, så å gjøre dette manuelt, er helt uaktuelt. Hvordan kan jeg gjøre dette? Grunnen til at jeg spør, er at jeg satser på at det skal gå bra i første forsøk. Er nemlig en prestisje å ligge blant topp 10 chattere, så hvis den dataen går tapt er det kjipt..... av i tabell chat tilsvarer id i tabell brukere
Neo Skrevet 25. mars 2004 Skrevet 25. mars 2004 (endret) hva med å kjøre denne sql-setningen som du skrev: SELECT av,count(*) as antall FROM chat GROUP BY av; #Lagre resultatet i en hash #start løkke ... UPDATE brukere SET chat = $bruker{$ant} WHERE bruker = "$bruker" #slutt løkke EDIT: (fjernet noe unødvendige greier) Skjønner ikke helt hvorfor jeg skulle lagre det i en fil. Var litt surrete. Endret 25. mars 2004 av Neo
audunr Skrevet 25. mars 2004 Skrevet 25. mars 2004 Lag kopier av de to tabellene, og forsøk dette: $result = mysql_query("SELECT av,count(*) as antall FROM chat GROUP BY av"); while ($row = mysql_fetch_assoc($result)) { mysql_query("UPDATE brukere SET chat=$row[antall] where BRUKERID(?) = $row[av]"); { Den samme logikken som i Neo sitt forslag. Som du ser er det et spørsmålstegn her, for jeg vet ikke hva kolonnen i brukere som tilsvarer av i brukere heter. MVH Audun
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å