Avatar billede grinebidder Nybegynder
26. juli 2005 - 11:27 Der er 8 kommentarer og
1 løsning

Søgning i en række i MySQL

Okay, muligvis er løsningen ganske enkel.

Jeg har en række i en tabel, der hedder »brugerrank«. I denne række bliver der placeret sæt indeholdende et brugerid (tal nr. 1) og en karakter (tal nr. 2) pr. bruger (fx 1|2). Efterhånden som flere brugersæt bliver lagt i rækken ser den sådan ud: 1|2,3|1,128|5 etc.

Jeg skal nu kunne søge i denne række, så jeg kan se, om et brugerid (tallet til venstre for |) allerede optræder i rækken, da det ikke må stå der to gange.

Ligeledes skal jeg tælle, hvor mange sæt, der er, og jeg skal lægge alle karaktererne (til højre for |) sammen.

Nogen bud?
Avatar billede jaw Nybegynder
26. juli 2005 - 11:30 #1
Først og fremmest er jeg ikke heeeelt med. Men du har altså sådan en talrække X|X,X|X,XX|X i 1 felt? Hvis det er hver sine felter (at id-feltet er sit eget) så lav feltet unikt og evt. auto-increcement, så kommer der aldrig 2 ens.
Avatar billede grinebidder Nybegynder
26. juli 2005 - 11:38 #2
Ja, jeg har et felt med X|X,X|X,X|X. ID'et findes i forvejen et andet sted (da det er et brugerID), her skal jeg så bare sikre mig, at hver bruger kun kan afgive karakterer én gang.

Så det er brugerID|karakter,brugerID|karakter etc.
Avatar billede barklund Nybegynder
26. juli 2005 - 11:45 #3
Det var da en afskyelig måde at bruge en database. Hvorfor har du ikke en tabel "bruger_rang" med bruger-id på modtager, bruger-id på afsender samt karakter. Så kan du gøre alt det, du vil, lynhurtigt.
Avatar billede grinebidder Nybegynder
26. juli 2005 - 11:53 #4
Ja, denne metode kom jeg også til at tænke på efterfølgende; så jeg tror, jeg går videre med den.
Avatar billede jaw Nybegynder
26. juli 2005 - 13:37 #5
Så skal du se på explode(); Du bliver vist nødt til at gøre det ad 2 gange, først hvor du opdeler efter komma og dernæst efter "|". ( www.php.net/explode )
Avatar billede jaw Nybegynder
26. juli 2005 - 13:38 #6
Men giver da bestemt Barklund ret. Jeg ville helt klar foretrække en tabel med f.eks. brugerid og emneid (hvis det var et emne der skulle gives karakter). Så kan der laves en krydsrefence til den tabel der indeholder selve emnet - hope you get the point :) !
Avatar billede grinebidder Nybegynder
26. juli 2005 - 14:56 #7
Ja, det er også det, jeg har gjort nu. Ved ikke hvorfor jeg gik i gang med det andet. Det her er noget lettere ;-)
Avatar billede barklund Nybegynder
26. juli 2005 - 17:45 #8
Well, jeg kaster gerne et svar for at kalde nogen/noget 'afskyeligt' ;)
Avatar billede barklund Nybegynder
28. april 2006 - 09:14 #9
Tark for points :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester