Quote Originariamente inviata da metatad Visualizza il messaggio
Quindi una cosa del genere, se capisco bene:
codice HTML:
SELECT POSITION (','||miatabella||',',',5,7,3,2,') POSIZIONE, miatabella, * FROM miatabella ORDER BY POSITION (','||miatabella||',',',5,7,3,2,')
Ho messo * al posto di tabella.item perchè mi servono i record di più campi.
Però c'è una cosa che ancora non capisco. In
(','||miatabella||',',',5,7,3,2,')
la prima virgola indica il separatore, ma le altre dopo || cosa stanno a rappresentare? E quante devono essere, conseguentemente??
conosci la funzione position?

http://www.w3resource.com/mysql/stri...n-function.php

POSITION (','||miatabella||',',',5,7,3,2,')
dove hai scritto miatabella deve andare una stringa da ricercare all'interno di un'altra stringa.

adesso: io pensavo che tu volessi cercare l'id della tua tabella all'interno della stringa $mialista = "5,9,12,16,2,36, ...";, e a secondo della sua posizione decidere l'ordine di output.

la virgola che mettevo prima e dopo dell tuo id, fanno in modo da cercare questa stringa: ',2,' all'interno di mialista, ho inserito la virgola prima e dopo al fine di non ottenere una posizione errata. spiego meglio

se tu cerchi il valore 2 dentro "5,9,12,16,2,36, ..."
otterrai come risultato 5 perche il primo 2 è quello del valo 12

se, invece, tu cerchi il valore ,2, dentro "5,9,12,16,2,36, ..."
otterrai come risultato 10 che è il punto esatto che cerchi.