djreficul eso no es lo que preguntaron, x lo q lei quieren poder dar orden a los registros pero no de esa manera sino con un Subir-Bajar
yo utilizo algo de ajax para eso...
En mi tabla agrego un campo "NUMERO_ORDEN_REGISTRO" [cat_orden en el ejemplo], que cada vez q se agrega un registro a la tabla, toma el valor del orden mas alto + 1.
tengo un boton subir y un boton bajar, en una fila ok?
bueno al ejecutarse alguno de ellos se ejecuta el siguiente codigo
la var accion1 significa se apreto uno de los botones, q pasa por GET el ID_REGISTRO ($_GET['cat_id'])Y EL NUMERO_ORDEN_REGISTRO ($_GET['cat_orden'] )
Código PHP:
if(isset($_GET['accion1'])){
$query_pos = $db->query("SELECT MAX(cat_orden) As MAYOR, MIN(cat_orden) As MENOR FROM categorias");
$row_pos = $db->fetch_assoc($query_pos);
$mayor = $row_pos['MAYOR'] ;
$menor = $row_pos['MENOR'] ;
if ($_GET['accion1'] == '1'){
//bajamos al alto y subimos a este
$sql2 = "UPDATE categorias SET cat_orden = cat_orden +1 WHERE cat_orden = ".($_GET['cat_orden'] -1 )."";
$sql = "UPDATE categorias SET cat_orden = cat_orden -1 WHERE cat_id =".$_GET['cat_id']."";
}else{
$sql2 = "UPDATE categorias SET cat_orden = cat_orden -1 WHERE cat_orden = ".($_GET['cat_orden']+1 )."";
$sql = "UPDATE categorias SET cat_orden = cat_orden +1 WHERE cat_id =".$_GET['cat_id']."";
}
if ($_GET['accion1'] == '1' && $_GET['cat_orden'] != $menor){
$db->query($sql2) or die (mysql_error().$sql2);
$db->query($sql) or die (mysql_error().$sql);
}
if ($_GET['accion1'] == '2' && $_GET['cat_orden'] != $mayor){
$db->query($sql2) or die (mysql_error().$sql2);
$db->query($sql) or die (mysql_error().$sql);
}
}