Avatar billede mwm77 Nybegynder
07. maj 2007 - 05:37 Der er 5 kommentarer og
1 løsning

Positions system ved brug af rows

Hej.

Jeg har en lille nød at knække som jeg selv lige må be om hjælp til at få løst. Jeg har en side hvor den viser nogle billeder fra databasen og gir nummer eks.1-100, WHERE user=user sorteret efter en ORDER by. simpelt nok. Jeg har så en anden side hvor jeg kun vil se user eks:user10. og vil ha lavet sådan at jeg kan se billedet ligger på pos:5 altså 5 row efter sortering. Så må vi se om i kan løse den... php/mysql

              Mvh..MWM
Avatar billede kjulius Novice
08. maj 2007 - 01:56 #1
Måske sådan her?

SELECT *
FROM dinTabel t
WHERE user = 'user10'
  AND nummer = 5 + (SELECT MIN(nummer) FROM dinTabel WHERE user = t.user)

Eller, hvis din nummerering altid starter fra nr. 1 for hver bruger, burde du jo bare kunne angive nummeret direkte, eller hvad?

SELECT *
FROM dinTabel
WHERE user = 'user10' and nummer = 6

(når du skriver ".. og gir nummer eks.1-100", så opdaterer du rent faktisk din tabel med dette nummer, går jeg ud fra)

Hvis jeg skulle have misforstået det (altså, at du ikke opdaterer tabellen), så kan du muligvis bruge LIMIT funktionen:

SELECT *
FROM dinTabel
WHERE user = 'user10'
ORDER BY dinSortering
LIMIT 1 OFFSET 5

(du kan også skrive det som LIMIT 5, 1)
Avatar billede mwm77 Nybegynder
08. maj 2007 - 03:06 #2
Nej ikke helt. Jeg kan lige forklare lidt bedre. Jeg har en Table "account" i databasen og et field "userid" og et "hits" + flere. Jeg har 2 seperat php sider. Den ene php1 viser alle de userid der er i Databasen sorteret efter "hits". en lang række med en...

foreach ($number as $number) ; $number++;

1, 2, 3 osv... så den med højest hits ligger nummer 1. Hits og sortering ændre hele tiden og listen opdater ved refresh. Det virker fint. Den anden php2 fil er en bruger konto, hvor man kan se navn, hits, position m.m. Navn og hits m.m kan jeg henter fra databasen, men jeg har ingen position over brugeren.

1 eksempel:

Jeg er oprettet som "userid" 20 og jeg kan se på php1 at jeg ligger på 13 pladsen Pos:13 i $number++ rækken. Når jeg så logger over i php2 og min konto oplysninger kommer frem og jeg kun ser mine egen "hits" Så kan jeg ikke få lavet så der står Pos:13 der. Den vil skrive Pos:1 hvis jeg henter med $number, fordi scriptet kun viser et field.

Jeg har prøvet at lave et pos field og får nummeret fra $number formen ned..men der skriver den det sidst tal i rækken på alle kontoerne. Det skal være sådan at hvergang "hits" ændre sig så ændre Pos med.
Avatar billede kjulius Novice
08. maj 2007 - 08:48 #3
Hmm... Det lyder nu mere som om det er et PHP problem end det er noget som hører under MySQL. Kan du ikke bare medsende oplysningen (at du har position 13) som en parameter fra din php1 til din php2 side? Jeg er ingen php-haj, men det er min tanke.

Hvis du ikke får andre (og bedre) forslag, vil jeg foreslå, at du flytter spørgsmålet over under php. Der har du sikkert bedre chancer... :-)
Avatar billede mwm77 Nybegynder
08. maj 2007 - 18:08 #4
Hej Kjulius.

Ja det har du nok ret i angåendne det med kategorien, det havde jeg ikke engang ses før du pointeret, jeg har først lige oprettet mig som bruger herinde, og skal lige finde ud af det forskellige. Jeg tror nu egentlig måske at det kunne være et mysql spørgsmål også men ja lidt begge dele. Det er mysql der ikke har row numbers indbygget, men php der skal lave det. Problemet er at pos.13 eller andre ikke er en real værdi i php der er bare rows der bliver talt med ++ ellers havde jeg kunne overføre værdien som alt andet. Netop derfor jeg skal ha lavet en måde at få tallene overført, men jeg kigger lige på at få det overført til php kategorien. Takker alligevel..

            MWM
Avatar billede kjulius Novice
08. maj 2007 - 19:13 #5
Ingen årsag!.. Bare luk spørgsmålet her ved at lægge et svar selv. Så kan du give dig selv point, og på den måde tage dem tilbage. Så er der bare tilbage at oprette et nyt spørgsmål i PHP kategorien. :-)
Avatar billede mwm77 Nybegynder
09. maj 2007 - 03:25 #6
Spørgsmål lukket
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
Computerworld tilbyder specialiserede kurser i database-management

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