Tengo una aplicación que crea un listado de elementos, y lo guarda en la base de datos. La tabla tiene un id normalito y uno de posición. Algo así:
Código PHP:
nombre | posicion
-----------------------------
manzana | 1
pera | 2
fresa | 3
piña | 4
Código PHP:
nombre | posicion
-----------------------------
manzana | 1
melon | 2
pera | 3
fresa | 4
piña | 5
Código PHP:
$query = "SELECT id_fruta,posicion FROM $tabla
WHERE posicion > {$_POST['posicion']}
ORDER BY posicion ASC";
$rs = $db->query($query);
while ($row = $rs->fetch()) {
$p = $row[1]+1;
$query = "UPDATE $tabla SET posicion = $p
WHERE id_fruta = {$row[0]}";
$db->exec($query);
}
$query = "INSERT INTO $tabla(nombre,posicion)
VALUES ('{$_POST['nombre']}',{$_POST['posicion']})";
El rollo que tengo es que no he logrado la organización a la hora de modficiar, es decir, decirle a una fruta "mover a despues de..." porque siempre se desordena. Puedo querer moverla al principio, al final, o insertarla en cualquier parte de la lista.
La base de datos es PostgreSQL y accedo a ella con PDO.
Espero haberme explicado bien en este rollo.
Agradezco de antemano toda la ayuda que puedan brindarme.
Éxitos y gracias.