Ver Mensaje Individual
  #9 (permalink)  
Antiguo 08/11/2005, 07:39
Avatar de nicolaspar
nicolaspar
 
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
A ver...lo tengo todo adaptado en cosas que no se sacan en un paso, pero tratare de explicarlo...
Tenemos dos partes, una es el listado, el cual se ordena siempre por el campo orden y el cuál tendrá en html esta columna para ordenar los registros.
Entonces, en el listado tendríamos algo como:

Código PHP:
<?php
#El query que levantara todo de la tabla, supongamos, noticias
$sql "Select * from noticias order by orden";
$PAGINADO 10;
$pagina $_GET["pagina"];
$offset = ( $pagina $PAGINADO ) - $PAGINADO;
$total =  mysql_num_rowsmysql_query$sql ) ) ;
#Levantar paginado
$sql .= ' LIMIT '.$offset.','.$PAGINADO ;
$r mysql_query$sql );
?>
<table width="500">
    <tr>
        <td>Título</td>
        <td>Orden</td>
    </tr>
<?php
    $codigo_ant 
;
    
$orden_ant ;
    
$cont ;    
    while( 
$rs mysql_fetch_array$rMYSQL_ASSOC ) ){
                   
$cont+=1;
?>
<tr>
  <td><?php echo $rs["titulo"];?></td>
  <td><?php if ($cont || $pagina >){?><a href="ordenar.php?orden=<?php echo $orden_ant ?>&codigo=<?php echo $codigo_ant ?>"><img src="images/flechaup_azul.gif"></a>&nbsp;<?php }  if ($PAGINADO*($pagina-1)+$cont $total ){?>&nbsp;<a href="ordenar.php?codigo=<?php echo $rs["codigo"?>&orden=<?php echo $rs["orden"?>"><img src="images/flechadwn_azul.gif"></a><?php ?></td>
</tr>

<?php
    $codigo_ant
=$rs["codigo"];
    
$orden_ant=$rs["orden"];
    }
    
mysql_free_result$r );

#Acá pondrían el paginado.
?>
Bien, acá tendríamos un listado con dos columnas, titulo o orden.
Nos restaría únicamente el file ordenar.php que ordenaría estos registros:

Código PHP:
<?php
$codigo 
$_GET['codigo'];
$orden $_GET['orden'];
define"TABLA""noticias"1);
    
$rs mysql_query"select codigo, orden from "TABLA ." where  orden > "$orden ." order by orden LIMIT 1" );
    if ( 
$r mysql_fetch_array$rsMYSQL_ASSOC ) ){
        
$codigoArriba $r["codigo"];
        
$ordenArriba $r["orden"];
        
mysql_query"update ".TABLA." set orden="$ordenArriba ." where codigo="$codigo );
        
mysql_query"update ".TABLA." set orden="$orden ." where codigo="$codigoArriba );
    }
    
mysql_free_result$rs );
header("Location: listado.php");
?>
Eso sería todo, si hay algo que no les funcione diganlo.

PD: Esto no tiene ninguna validacion siquiera de los tipos de datos, pueden agregarlo a gusto y necesidad. Espero que sea de utilidad.
__________________
Mi punto de partida es Que Bueno Lo Nuevo