Hoi People,
Ik probeer een aantal records in een bepaalde volgorde te plaatsen. Nu heb ik een tabel met een hoop records, waarvan alle records met het zeflde groepnummer bij elkaar horen.. Binnen zo'n groep wordt een sortering toegepast om de items in een correcte volgorde te krijgen. Dit doe ik door de "OS2_VRAAGNO"-waarde. Zo is het dus dat het record waarbij deze waarde '0' is, bovenaan komt te staan. De gene met de waarde '1' hieronder.
Voorbeeld:
OS2_VRAAGNO (0); OS2_ID(54)
OS2_VRAAGNO (1); OS2_ID(55)
OS2_VRAAGNO (2); OS2_ID(56)
Deze records worden via PHP in een select-box gegooid, gesorteerd op de OS2_VRAAGNO-waarde. Mensen kunnen met knopjes hun eigen sortering maken van de records..
En nu komt het punt.. wanneer mensen OS2_ID(56) nu voor (55) hebben geplaatst zou ik dus dit moeten krijgen:
OS2_VRAAGNO (0); OS2_ID(54)
OS2_VRAAGNO (1); OS2_ID(56)
OS2_VRAAGNO (2); OS2_ID(55)
Nu heb ik de volgende query om de records te nummeren:
SET @n=0; UPDATE OFFERTE_STEP2_Q SET OS2_VRAAGNO = (SELECT @n:=@n+1) WHERE OS2_ID IN (54, 56, 55)
Helaas bemerk ik dat MySQL zich niet aan mijn IN(...) volgorde houdt, maar ze alsnog fijn sorteerd op die OS2_IDs (waardoor 55 toch weer voor 56 belandt)
Heeft iemand misschien een idee hoe ik alsnog mijn sortering voor elkaar kan krijgen? En dan uiteraard het liefst met 1 UPDATE query...
Thanks
Ik probeer een aantal records in een bepaalde volgorde te plaatsen. Nu heb ik een tabel met een hoop records, waarvan alle records met het zeflde groepnummer bij elkaar horen.. Binnen zo'n groep wordt een sortering toegepast om de items in een correcte volgorde te krijgen. Dit doe ik door de "OS2_VRAAGNO"-waarde. Zo is het dus dat het record waarbij deze waarde '0' is, bovenaan komt te staan. De gene met de waarde '1' hieronder.
Voorbeeld:
OS2_VRAAGNO (0); OS2_ID(54)
OS2_VRAAGNO (1); OS2_ID(55)
OS2_VRAAGNO (2); OS2_ID(56)
Deze records worden via PHP in een select-box gegooid, gesorteerd op de OS2_VRAAGNO-waarde. Mensen kunnen met knopjes hun eigen sortering maken van de records..
En nu komt het punt.. wanneer mensen OS2_ID(56) nu voor (55) hebben geplaatst zou ik dus dit moeten krijgen:
OS2_VRAAGNO (0); OS2_ID(54)
OS2_VRAAGNO (1); OS2_ID(56)
OS2_VRAAGNO (2); OS2_ID(55)
Nu heb ik de volgende query om de records te nummeren:
SET @n=0; UPDATE OFFERTE_STEP2_Q SET OS2_VRAAGNO = (SELECT @n:=@n+1) WHERE OS2_ID IN (54, 56, 55)
Helaas bemerk ik dat MySQL zich niet aan mijn IN(...) volgorde houdt, maar ze alsnog fijn sorteerd op die OS2_IDs (waardoor 55 toch weer voor 56 belandt)
Heeft iemand misschien een idee hoe ik alsnog mijn sortering voor elkaar kan krijgen? En dan uiteraard het liefst met 1 UPDATE query...
Thanks
[ Voor 7% gewijzigd door Zoetjuh op 29-11-2004 17:49 . Reden: verbetering ]