Ver Mensaje Individual
  #6 (permalink)  
Antiguo 17/12/2008, 19:49
Avatar de Tokkara
Tokkara
 
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 15 años, 11 meses
Puntos: 5
Respuesta: Serio problemota

Ir renumerando el campo indice puede llegar a ser una tarea ardua para la BD sobre todo si la tabla es grande.
Puedes intentar extraer los datos y luego renumerarlos fuera usando PHP.

Código PHP:

$row 
mysql_query("SELECT * FROM tabla1");

$result = array();
while(
$r mysql_fetch_array($row))
{
  
$result[] = $r

Asi lo tendras renumerados desde fuera.

Aun así si lo quieres hacer como dices prueba esto:

Código PHP:

$cod_iden 
2;

//Borramos el campo que deseamos
mysql_query("DELETE FROM tabla WHERE cod_iden = ".$cod_iden);

//Decrementamos en 1 el cod_iden de todos los campos superiores a este
mysql_query("UPDATE tabla SET cod_iden = cod_iden-1 WHERE cod_iden > ".$cod_iden);

//Ahora si usas AUTO_INCREMENT en el campo de cod_iden tambien hay que alterarle. 
//Usamos esta sentencia para extraer el campo auto_increment
$r mysql_query("SELECT AUTO_INCREMENT FROM information_schema.table WHERE TABLE_SCHEMA = 'nombre_bd' AND TABLE_NAME = 'tabla'");

$result mysql_fetch_array($r);
$auto_increment $result["auto_increment"];

//Ahora alteramos el campo autoincrement restandole 1

mysql_query("ALTER TABLE tabla AUTO_INCREMENT = ".($auto_increment-1)); 

Esta codigo no es muy aconsejable pues hay muchas sentencias MySQL seguidas y algunas de ellas pueden ser muy pesadas.

No he probado el codigo. Pero la idea es clara.

Saludos
__________________
Revolucionario controlador de plantillas para php
www.simphple.com