/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
ID check.
Fra : Brian Poulsen


Dato : 02-08-03 11:26

Hej NG.

På en side henter jeg data ud af en database ca sådan her:
"select id,dato,body,image from photo order by id desc limit 1"

Dermed får jeg output fra det højeste ID.

Jeg har så to links på siden, et link der siger "tilbage" og et der siger
"frem".
Eftersom jeg har hentet det nyeste ud af databasen og der ikke er et ID
nummer der er højere, skal linket frem ikke være et link, dog skal "tilbage"
være et link til det ID nummer som ligger lige før det der bliver vist.
Det er som sådan ikke et problem.
Problemet ligger i at hvis jeg har rækker med ID værdierne
1,2,3,6,7,9,10,11, hvordan får jeg så databasen til at finde ud af at hvis
den viser billedet hvor ID = 9, så skal "tilbage" linket være 7 og ikke 8.
Altså den skal tjekke hvad ID nummeret er der kommer lige før.

På forhånd tak.
Brian.



 
 
Martin Møller Bæk (02-08-2003)
Kommentar
Fra : Martin Møller Bæk


Dato : 02-08-03 12:10

"Brian Poulsen" <brian@fuz.dk> skrev i en meddelelse
news:bgg3e4$129$1@sunsite.dk...
> På en side henter jeg data ud af en database ca sådan her:
> "select id,dato,body,image from photo order by id desc limit 1"
>
> Dermed får jeg output fra det højeste ID.
>
> Jeg har så to links på siden, et link der siger "tilbage" og et der siger
> "frem".
> Eftersom jeg har hentet det nyeste ud af databasen og der ikke er et ID
> nummer der er højere, skal linket frem ikke være et link, dog skal
"tilbage"
> være et link til det ID nummer som ligger lige før det der bliver vist.
> Det er som sådan ikke et problem.
> Problemet ligger i at hvis jeg har rækker med ID værdierne
> 1,2,3,6,7,9,10,11, hvordan får jeg så databasen til at finde ud af at hvis
> den viser billedet hvor ID = 9, så skal "tilbage" linket være 7 og ikke 8.
> Altså den skal tjekke hvad ID nummeret er der kommer lige før.

Du ændrer bare din sql til ...limit 2
og henter både det højeste og næsthøjeste id ud.
Det næsthøjeste id kan du så bruge i dit tilbage link

--
mvh
Martin MB
www.yavi.dk
www.web2matic.dk




Martin Møller Bæk (02-08-2003)
Kommentar
Fra : Martin Møller Bæk


Dato : 02-08-03 12:17


"Martin Møller Bæk" <martin@fjerndette.aflame.dk> skrev i en meddelelse
news:bgg63e$hab$1@news.net.uni-c.dk...
> "Brian Poulsen" <brian@fuz.dk> skrev i en meddelelse
> news:bgg3e4$129$1@sunsite.dk...
> > På en side henter jeg data ud af en database ca sådan her:
> > "select id,dato,body,image from photo order by id desc limit 1"
[...]
> > være et link til det ID nummer som ligger lige før det der bliver vist.
> > Det er som sådan ikke et problem.
> > Problemet ligger i at hvis jeg har rækker med ID værdierne
> > 1,2,3,6,7,9,10,11, hvordan får jeg så databasen til at finde ud af at
hvis
> > den viser billedet hvor ID = 9, så skal "tilbage" linket være 7 og ikke
8.
> > Altså den skal tjekke hvad ID nummeret er der kommer lige før.
>
> Du ændrer bare din sql til ...limit 2
> og henter både det højeste og næsthøjeste id ud.
> Det næsthøjeste id kan du så bruge i dit tilbage link

Dette virker selvfølgelig kun, hvis du er i enden af sekvensen.
Hvis du er midt i sekvensen skal du hive ud ved noget i retningen af

Tilbage-id
...where id < curid
hvor curid er id på det billede, som bliver vist.
Herved får du id'et før.

Ligelede ved frem-id
...where id > curid
hvor curid er id på det billede, som bliver vist.
Herved får du id'et efter.

--
mvh
Martin MB
www.yavi.dk
www.web2matic.dk




Martin Sveegaard (02-08-2003)
Kommentar
Fra : Martin Sveegaard


Dato : 02-08-03 12:14

On Sat, 2 Aug 2003 12:25:58 +0200, "Brian Poulsen" <brian@fuz.dk>
wrote:

>Hej NG.
>
>På en side henter jeg data ud af en database ca sådan her:
>"select id,dato,body,image from photo order by id desc limit 1"
>
>Dermed får jeg output fra det højeste ID.
>
>Jeg har så to links på siden, et link der siger "tilbage" og et der siger
>"frem".
>Eftersom jeg har hentet det nyeste ud af databasen og der ikke er et ID
>nummer der er højere, skal linket frem ikke være et link, dog skal "tilbage"
>være et link til det ID nummer som ligger lige før det der bliver vist.
>Det er som sådan ikke et problem.
>Problemet ligger i at hvis jeg har rækker med ID værdierne
>1,2,3,6,7,9,10,11, hvordan får jeg så databasen til at finde ud af at hvis
>den viser billedet hvor ID = 9, så skal "tilbage" linket være 7 og ikke 8.
>Altså den skal tjekke hvad ID nummeret er der kommer lige før.

Det behøver du ikke bruge. Du kan hente den forrige ved at bruge
offset i din LIMIT. Fx den andensidste:
SELECT id,dato,body,image FROM photo ORDER BY id DESC LIMIT 1 , 1
den trediesidste:
SELECT id,dato,body,image FROM photo ORDER BY id DESC LIMIT 2 , 1
MVH Martin S

Martin Møller Bæk (02-08-2003)
Kommentar
Fra : Martin Møller Bæk


Dato : 02-08-03 12:18


"Martin Sveegaard" <sveegaard@tdcadslFJERN:DETTE.dk> skrev i en meddelelse
news:k07nivsp3hnb9oksk3nhnfash22fgipoq5@4ax.com...
> On Sat, 2 Aug 2003 12:25:58 +0200, "Brian Poulsen" <brian@fuz.dk>
> wrote:

> Det behøver du ikke bruge. Du kan hente den forrige ved at bruge
> offset i din LIMIT. Fx den andensidste:
> SELECT id,dato,body,image FROM photo ORDER BY id DESC LIMIT 1 , 1
> den trediesidste:
> SELECT id,dato,body,image FROM photo ORDER BY id DESC LIMIT 2 , 1

Ja, men jeg tænkte på, at han skulle bruge begge id.
Både på den nuværende (højest) og den før.

--
mvh
Martin MB
www.yavi.dk
www.web2matic.dk





Martin Sveegaard (02-08-2003)
Kommentar
Fra : Martin Sveegaard


Dato : 02-08-03 12:25

On Sat, 2 Aug 2003 13:18:25 +0200, "Martin Møller Bæk"
<martin@fjerndette.aflame.dk> wrote:

>
>"Martin Sveegaard" <sveegaard@tdcadslFJERN:DETTE.dk> skrev i en meddelelse
>news:k07nivsp3hnb9oksk3nhnfash22fgipoq5@4ax.com...
>> On Sat, 2 Aug 2003 12:25:58 +0200, "Brian Poulsen" <brian@fuz.dk>
>> wrote:
>
>> Det behøver du ikke bruge. Du kan hente den forrige ved at bruge
>> offset i din LIMIT. Fx den andensidste:
>> SELECT id,dato,body,image FROM photo ORDER BY id DESC LIMIT 1 , 1
>> den trediesidste:
>> SELECT id,dato,body,image FROM photo ORDER BY id DESC LIMIT 2 , 1
>
>Ja, men jeg tænkte på, at han skulle bruge begge id.
>Både på den nuværende (højest) og den før.

Godt tænkt. Det er sikkert osse nemmere at implementere i det
nuværende script.
MVH Martin S

Brian Poulsen (02-08-2003)
Kommentar
Fra : Brian Poulsen


Dato : 02-08-03 13:34

Hej.

Tak for jeres svar.
Jeg har dog fundet ud af det på anden vis ved at lave
"select id from photo where id < $id order by id desc limit 1" til det der
er en mindre
og
"select id from photo where id > $id order by id asc limit 1" til det der er
en højere.

Brian.

"Martin Sveegaard" <sveegaard@tdcadslFJERN:DETTE.dk> wrote in message
news:bq7nivkpodb9sui0e5nuddeff9kvq7142s@4ax.com...
> On Sat, 2 Aug 2003 13:18:25 +0200, "Martin Møller Bæk"
> <martin@fjerndette.aflame.dk> wrote:
>
> >
> >"Martin Sveegaard" <sveegaard@tdcadslFJERN:DETTE.dk> skrev i en
meddelelse
> >news:k07nivsp3hnb9oksk3nhnfash22fgipoq5@4ax.com...
> >> On Sat, 2 Aug 2003 12:25:58 +0200, "Brian Poulsen" <brian@fuz.dk>
> >> wrote:
> >
> >> Det behøver du ikke bruge. Du kan hente den forrige ved at bruge
> >> offset i din LIMIT. Fx den andensidste:
> >> SELECT id,dato,body,image FROM photo ORDER BY id DESC LIMIT 1 , 1
> >> den trediesidste:
> >> SELECT id,dato,body,image FROM photo ORDER BY id DESC LIMIT 2 , 1
> >
> >Ja, men jeg tænkte på, at han skulle bruge begge id.
> >Både på den nuværende (højest) og den før.
>
> Godt tænkt. Det er sikkert osse nemmere at implementere i det
> nuværende script.
> MVH Martin S



Anders K. Madsen (02-08-2003)
Kommentar
Fra : Anders K. Madsen


Dato : 02-08-03 17:07

On Sat, 2 Aug 2003 13:16:43 +0200
"Martin Møller Bæk" <martin@fjerndette.aflame.dk> wrote:

>
[snip]
>
> Tilbage-id
> ...where id < curid
> hvor curid er id på det billede, som bliver vist.
> Herved får du id'et før.
>
> Ligelede ved frem-id
> ...where id > curid
> hvor curid er id på det billede, som bliver vist.
> Herved får du id'et efter.
>

Husk lige at smide en "ORDER BY id DESC LIMIT 1" efter den, så du ikke får mere
output fra MySQL end højst nødvendigt.

Mvh.
   Madsen

--
- - - - - - - - - - - - - - + - - - - - - - - - - - - - - +
| Anders K. Madsen
http://lillesvin.linux.dk |
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| There are 10 types of people in the world... |
Those who understand binary - and those who don't.
| - http://bash.org |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - +

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste