Ordenar imágenes a través de desplegable
3 seguidores
hola a todos, tengo una duda y no se como solventarla.
Tengo una tabla que almacena imagenes asociadas a proyectos y le da un orden
la tabla tiene, id, id_proyecto, orden, imagen
Luego listo las imagenes a traves de un php, pero quiero que puedas reordenarlas desde un desplegable.
Os dejo una captura para que os hagais una idea.

La verdad es que no se como hacerlo, supongo que deberia meter el orden en un array y luego hacer un update de una por una las imagenes que hay.
Pero no se por donde empezar.
Alguien sabe donde puedo encontrar un tutorial o ayudarme a solventarlo.
muchas gracias
sgiraldo
hola dazao,
yo para estos casos tengo un "reordena.php" que pilla el id del que quieres modificar el orden, y el orden que le quieres poner.
Mediante dos sqls hago:
- Buscar el id del elemento que tiene el orden que deseas poner al elemento modificado.
- El orden actual del elemento a modificar.
Seguidamente al elemento a modificar le adjudico el nuevo orden, y al id del elemento que tenía el orden le adjudico el orden del elemento a modificar.
No sé si me he liado mucho, no me suelo explicar muy bien.
dagi3d
si en vez de indicar un orden en concreto, quieres implementar un sistema de 'subir y bajar' los elementos, puedes echarle un vistazo a este código: http://pastie.org/348421
se trata de un behaviour para Doctrine, pero creo que te puede servir para pillar el concepto. la idea(que está sacada del acts_as_list de Ruby On Rails) es que si quieres 'subir' un elemento, buscas el que está inmediatamente arriba(es decir, el que tiene una posición igual a tu elemento menos uno) y le sumas una posición y al que querías mover, le restas(vamos, que intercambias los valores de las posiciones). Para 'bajar', sería igual, pero buscando el que está inmediatamente abajo
dazao
Hola sgiraldo, cuanto tiempo :D
Una preguntilla, si no es abusar, podrías postear parte del código de tu php para hacerme una idea, voy a buscar info de como reordenar un array en php y asi avanzo algo, luego supongo que con un bucle hago el update colectivo :D
gracias dagi por tu respuesta pero me he mirado el code y se me escapa bastante, thanks igualmente
sgiraldo
ei dazao, perdona el retraso... pero estas fiestas me han dejado ko.
$id = $_GET['id'];
$inc = $_GET['inc'];
$SQLact = "Select * from ".$tabla." Where IdFoto=".$id;
$resultact = mysql_query($SQLact);
$rowact = mysql_fetch_array($resultact);
$ordenAnt = $rowact['orden'];
if($inc==0)
{
$ordenNew = $ordenAnt-1;
}else{
$ordenNew = $ordenAnt+1;
}
$SQLmodF = "UPDATE ".$tabla." SET orden=".$ordenAnt." Where orden=".$ordenNew;
$resultmodF = mysql_query($SQLmodF);
$SQLmodS = "UPDATE ".$tabla." SET orden=".$ordenNew." Where IdFoto=".$id;
$resultmodS = mysql_query($SQLmodS);
Más o menos esto seria así. El id que se pasa es el de la entrada que quieres modificar, y el "inc" es 1 o -1 dependiendo donde quieras mover el item en cuestión.
Espero que te sirva.