|
| Rækkefølge for rækker i tabel Fra : Nomen Nescio |
Dato : 28-02-04 22:55 |
|
Jeg kunne godt tænke mig at lave en 'rækkefølge'-kolonne i min tabel, lad os
antage at den ser sådan ud:
id | raekkefoelge | tekst
Så jeg altså ikke får dem i id's rækkefølge hver gang, men i stedet kan
bruge "ORDER BY raekkefoelge ASC".
Jeg skal i administrationsmodulet have mulighed for at sætte rækkefølgen op.
Nu kommer problemet:
Hvis jeg har to rækker, den ene med raekkefoelge = 1 og den anden med
raekkefoelge = 2. Jeg vil rykke raekke 1 nedad, så den altså får
raekkefoelge = 2 - men jeg skal have den anden række til at rykke op og få
raekkefoelge = 1.
Er der en smart måde at gøre det på i PHP/MySQL - eller skal det hardcodes?
Jeg håber jeg har gjort mig forståelig.
På forhånd tak.
| |
JMo. (28-02-2004)
| Kommentar Fra : JMo. |
Dato : 28-02-04 23:14 |
|
Nomen Nescio wrote:
> Hvis jeg har to rækker, den ene med raekkefoelge = 1 og den anden med
> raekkefoelge = 2. Jeg vil rykke raekke 1 nedad, så den altså får
> raekkefoelge = 2 - men jeg skal have den anden række til at rykke op
> og få raekkefoelge = 1.
Du kan overveje at angive rækkefølgen som et komma-tal. Hvis du så vil
flytte række 1 ned mellem række 2 og 3, kalder du den blot 2,5. Vil du nu
indsætte endnu en række mellem 2 og 2,5 kalder du den blot 2,25 og så
fremdeles.
| |
Dennis Newel (29-02-2004)
| Kommentar Fra : Dennis Newel |
Dato : 29-02-04 00:14 |
|
JMo. wrote:
> Nomen Nescio wrote:
>
>
>>Hvis jeg har to rækker, den ene med raekkefoelge = 1 og den anden med
>>raekkefoelge = 2. Jeg vil rykke raekke 1 nedad, så den altså får
>>raekkefoelge = 2 - men jeg skal have den anden række til at rykke op
>>og få raekkefoelge = 1.
>
>
> Du kan overveje at angive rækkefølgen som et komma-tal. Hvis du så vil
> flytte række 1 ned mellem række 2 og 3, kalder du den blot 2,5. Vil du nu
> indsætte endnu en række mellem 2 og 2,5 kalder du den blot 2,25 og så
> fremdeles.
so sorry - men det lyder bare ikke holdbart :)
JEg vil nok forelå at lave det i phpkoden - dvs i admin.interfacet. Når
man vil flytte en kollonne op eller ned, laver du to update statements:
1) update tablename set raekkefolge=$row->raekkefolge where
raekkefolge=$row->raekkefolge+1
2) update tablename set raekkefolge=$row->raekkefolge+1 where id=$row->id
...håber det giver mening.
./Dennis
p.s. ikke testet eller noget, og det kan sikkert gøres smartere :)
| |
|
|