|
| 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-)
| |
|
|