[PHP/MySQL] Items sorteren in tabel (Move up/down)

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • babbaloerie
  • Registratie: April 2003
  • Laatst online: 25-09-2023

babbaloerie

¯¯¯¯¯¯¯

Topicstarter
Ik ben een php scriptje aan het maken waarmee ik rijen die ik uit een mysql-tabel haal kan sorteren.

Ik heb een tabel die er zo uit kan zien:

idorderingtitlecontent
11Test 1Blaaat!
134Test 2Blaaat!
2810Test 3Blaaat!

Deze wordt bij het uitlezen gesorteert op ordering. Met pijltjes ernaast waarmee ik een rij naar boven of naar beneden kan verplaatsen.

Aangezien de nummers uit ordering uiteen kunnen lopen en niet altijd op elkaar volgen (niet 1,2,3,4 maar bijv. 1,4,10) is gewoon orderingveld+1 of orderingveld-1 niet mogelijk.
De waarden van het orderingveld omswitchen is een mogelijkheid. Maar ik kan in de while-loop die ik gebruik om het gebeuren uit te lezen alleen de waarde uitlezen van het desbetreffende orderingveld en niet die eronder of erboven.

Iemand enig idee hoe ik dit het makkelijkst kan doen :?

Bij voorbaat dank.

Acties:
  • 0 Henk 'm!

  • Piels
  • Registratie: Maart 2001
  • Laatst online: 25-08 15:44
Je zou de query opnieuw kunnen uitvoeren. Daarin dmv een var aangeven wat het sorteer veld is en of deze ASC of DESC gesorteerd moet worden.

Windows Phone Apps: Belstatus, Pinautomaten


Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
bij pijltje omhoog doe je dit:

select * from `tabel` where `ordering` < '$mijn_eigen_ordering' LIMIT 1

dan heb je de twee records die je wilt swappen, namelijk de gene waar je opgeklikt hebt en die er boven/onder

dan swap je ze... that's it'

je zegt dat je niet die van de regel erboven of eronder kan opvragen, maareuh.. dit is geen spelletje 'vraagstukken met handicappen' dit is een taal combi (php/sql) en daarin kan dit gewoon wel

[ Voor 28% gewijzigd door BasieP op 06-03-2007 15:15 ]

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • babbaloerie
  • Registratie: April 2003
  • Laatst online: 25-09-2023

babbaloerie

¯¯¯¯¯¯¯

Topicstarter
Bedankt :) Ik heb het werken.

Ik denk zoals altijd weer te moeilijk :X

Acties:
  • 0 Henk 'm!

Verwijderd

of je maakt een aparte genumerde array en set achter elke index de 'id' van de rij. dit bewaar je dan vervolgens in je sessie samen met de resultaten mits deze niet te groot zijn natuurlijk.

aangezien het hier vooral een weergave probleem betreft is het een beetje onzinig om voor elke rij of pageview weer een aparte query richting de database te sturen. je wisselt dan gewoon alleen de id's in de index array en je weergave volgorde veranderd. dit zou je nog kunnen combineren met een leuke javascript(ajax) ofzo.

maar ik zag dat je het al had opgelost.

Acties:
  • 0 Henk 'm!

  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 00:23
Ligt eraan wat je actie aan de pijltjes hebt hangen, maar je kan natuurlijk de "ordering"van het voorgaande veld en die van het huidige veld meegegeven als parameter aan deze actie

Dus dan wordt het:
idorderingtitlecontentomhoogomlaag
11Test 1Blaaat!-Wissel 1,4
134Test 2Blaaat!Wissel 1,4Wissel 4,10
2810Test 3Blaaat!Wissel 4,10-


Zodoende hoef je 't niet meer in de db op te zoeken.

Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

edit:
Nevermind.

[ Voor 96% gewijzigd door BalusC op 07-03-2007 08:03 ]

Pagina: 1