/ 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
Har brug for hjælp med at finde to bestemt~
Fra : Lars Hansen


Dato : 08-09-03 20:46

Hejsa.

Newbie her...

Hvis jeg har en række id'er i en tabel hvor rækkefølgen er sådan her:

1, 4, 6, 8, 10, 34 og man står på 10, hvordan får man så en PHP side
til og finde 8 og 34 og vise dem?

Jeg skal have den til og finde de to tal der er nærmest det id jeg har
på siden.

Håber på at I kan hjælpe mig.

Mvh

Lars Hansen

 
 
Jesper Brunholm (09-09-2003)
Kommentar
Fra : Jesper Brunholm


Dato : 09-09-03 08:25

Lars Hansen wrote:

> Hvis jeg har en række id'er i en tabel hvor rækkefølgen er sådan her:
>
> 1, 4, 6, 8, 10, 34 og man står på 10, hvordan får man så en PHP side
> til og finde 8 og 34 og vise dem?

Det er vist lettest med SQL, som Peter Brodersen har anvist. Med PHP
ville jeg (automatiseret) lægge dem i et array som følger:

$tabel=array(
0=>1,
1=>4,
2=>6,
3=>8,
4=>10,
5=>34
);

Jeg har sat noegler (keys) på for overblikkets skyld, det er ikke
nødvendigt, da PHP automatisk gør dette med tal hvis man ikke sætter nogen.

Derefter kan du holde øje med hvilken plads i arrayet du er på, og tage
pladsen før og efter.
I det aktuelle tilfælde vil du gerne hente pladsen ud, det kan du gøre med

$aktueltID=10;

$aktueltIDkey = array_search($aktuelPosition, $tabel);
$foregID = $tabel[$aktueltIDkey-1];
$naesteID = $tabel[$aktueltIDkey+1];

Du kan (og bør,hvis ikke du har gjort det) læse om funktionerne array,
array_search osv på http://dk.php.net

mvh

Jesper Brunholm

--
Phønix - dansk folk-musik i front - <http://www.phonixfolk.dk/>
H.C. Andersen-Centret: <http://www.andersen.sdu.dk/>
Vi har killinger på Garion.dk: <http://garion.dk/>


N/A (09-09-2003)
Kommentar
Fra : N/A


Dato : 09-09-03 09:40



Lars Hansen (09-09-2003)
Kommentar
Fra : Lars Hansen


Dato : 09-09-03 09:40

Peter Brodersen <usenet@ter.dk> wrote in message news:<bjj148$3te$1@dknews.tiscali.dk>...
> On 8 Sep 2003 12:45:33 -0700, bamf@bamf.dk (Lars Hansen) wrote:
>
> >Hvis jeg har en række id'er i en tabel hvor rækkefølgen er sådan her:
> >
> >1, 4, 6, 8, 10, 34 og man står på 10, hvordan får man så en PHP side
> >til og finde 8 og 34 og vise dem?
>
> En tabel - et array, eller en database? I sidstnævnte tilfælde,
> hvilken database?
>
> Følgende ville fx virke med MySQL:
> SELECT id FROM tabel WHERE id < 10 LIMIT 1
> SELECT id FROM tabel WHERE id > 10 LIMIT 1


Det var lige det jeg ledte efter, undskyld at jeg ikke forklarede det godt nok.

Mvh.

Lars Hansen

Benny Nissen (09-09-2003)
Kommentar
Fra : Benny Nissen


Dato : 09-09-03 12:48


"Peter Brodersen" <usenet@ter.dk> skrev i en meddelelse
news:bjj148$3te$1@dknews.tiscali.dk...
> On 8 Sep 2003 12:45:33 -0700, bamf@bamf.dk (Lars Hansen) wrote:
>
> >Hvis jeg har en række id'er i en tabel hvor rækkefølgen er sådan her:
> >
> >1, 4, 6, 8, 10, 34 og man står på 10, hvordan får man så en PHP side
> >til og finde 8 og 34 og vise dem?
>
> En tabel - et array, eller en database? I sidstnævnte tilfælde,
> hvilken database?
>
> Følgende ville fx virke med MySQL:
> SELECT id FROM tabel WHERE id < 10 LIMIT 1
> SELECT id FROM tabel WHERE id > 10 LIMIT 1

Øhh, vil den i øverste tilfælde ikke blot tage id=1 som står først ?
SQL begynder vel fra starten af tabellen, og når kun til id=1 som er mindre
en 10.
Det var jo id=8 han skulle have fat i.


--
Benny Nissen
http://web.bennynissen.dk



Jesper Brunholm (09-09-2003)
Kommentar
Fra : Jesper Brunholm


Dato : 09-09-03 12:55

Benny Nissen wrote:

> "Peter Brodersen" <usenet@ter.dk> skrev i en meddelelse

>>>1, 4, 6, 8, 10, 34 og man står på 10, hvordan får man så en PHP side
>>>til og finde 8 og 34 og vise dem?

>>Følgende ville fx virke med MySQL:
>>SELECT id FROM tabel WHERE id < 10 LIMIT 1
>>SELECT id FROM tabel WHERE id > 10 LIMIT 1

> Øhh, vil den i øverste tilfælde ikke blot tage id=1 som står først ?

Nu du siger det - det frygter jeg også. Det kan så løses med

SELECT id FROM tabel WHERE id < 10 ORDER BY id DESC LIMIT 1

mvh

Jesper Brunholm

--
Phønix - dansk folk-musik i front - <http://www.phonixfolk.dk/>
H.C. Andersen-Centret: <http://www.andersen.sdu.dk/>
Vi har killinger på Garion.dk: <http://garion.dk/>


Peter Brodersen (09-09-2003)
Kommentar
Fra : Peter Brodersen


Dato : 09-09-03 23:08

On Tue, 9 Sep 2003 13:48:07 +0200, "Benny Nissen"
<news@bennynissen.dk> wrote:

>> Følgende ville fx virke med MySQL:
>> SELECT id FROM tabel WHERE id < 10 LIMIT 1
>> SELECT id FROM tabel WHERE id > 10 LIMIT 1
>
>Øhh, vil den i øverste tilfælde ikke blot tage id=1 som står først ?

Kun hvis jeg sover. Hvilket er tilfældet her.

I begge tilfælde bør man smide en passende ORDER BY ind, da man ikke
kan/må/bør gå ud fra en rækkefølge i øvrigt. Altså:

SELECT id FROM tabel WHERE id < 10 ORDER BY id DESC LIMIT 1
SELECT id FROM tabel WHERE id > 10 ORDER BY id ASC LIMIT 1

--
- Peter Brodersen

Ugens sprogtip: yndlings- (og ikke ynglings-)

Søg
Reklame
Statistik
Spørgsmål : 177502
Tips : 31968
Nyheder : 719565
Indlæg : 6408532
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste