Foros del Web » Programando para Internet » PHP »

Problema con campo autonumerico.

Estas en el tema de Problema con campo autonumerico. en el foro de PHP en Foros del Web. Que tal gente, tengo un problemita: Subiendo fotos, antes de guardar la ruta en la base de datos se le asigna el nombre al archivo ...
  #1 (permalink)  
Antiguo 24/05/2007, 13:06
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 19 años, 4 meses
Puntos: 1
Problema con campo autonumerico.

Que tal gente, tengo un problemita:

Subiendo fotos, antes de guardar la ruta en la base de datos se le asigna el nombre al archivo de foto y se la procede a guardar.

Bien, el nombre de la foto esta compuesto por:

id_foto + id_usuario

Entonces lo que yo hacia para conocer cual seria el proximo valor de la ultima foto era tomar el valor del campo id_foto autonumerico en una variable y sumarle 1, pero claro esto puede traer un gran problema, ya que si se elimina una fota, se toma el ultimo y se le suma 1 nunca se mostrara, ya que el campo numerico esta 1 numero mas arriba!

Como podria solucionar esto?

Parte del codigo:

Código:
$result=mysql_query("select id_foto from fotos order by id_foto DESC LIMIT 1");
if ($row=mysql_fetch_array($result)) { 
	$nro_id = $row['id_foto'] + '1';
}

$ruta = 'users_imgs/temp' ;
$temp = $ruta .'/'. $id_usuario. '-'. $nro_id.'.jpg';

if(move_uploaded_file($_FILES['fichero']['tmp_name'], $temp)) {
   .....
   mysql_query("INSERT INTO fotos (id_usr,titulo,id_galeria) values ('$id_usuario','$titulo','$id_gal')");
   unlink($temp);
}
Lo ideal seria conectarse a la BD y saber que numero le seguira, pero no tengo idea si se puede y como se hace.

Muchas gracias.
  #2 (permalink)  
Antiguo 24/05/2007, 14:28
Avatar de deet  
Fecha de Ingreso: mayo-2005
Ubicación: Córdoba - Argentina
Mensajes: 269
Antigüedad: 19 años
Puntos: 1
Re: Problema con campo autonumerico.

hola snakeS,

no conozco ninguna función de mysql para saber cual es el próximo número de un campo autoincrement pero existe una función que se llama mysql_insert_id(), entonces cada vez que agregues un registro a la DB tomas ese número y lo guardas en otra tabla o en un archivo txt, luego para cuando insertes otro registro en la DB lees el txt, le sumas 1 y siempre vas a tener el proximo autoincrement.

aquí te dejo el script con opción de guardado en un txt para que te des una idea de lo que te contesté arriba

Código PHP:
//abro el archivo que contiene el último autoincrement
$fp fopen("last_id.txt","r");
//le sumo 1 al valor obtenido
$nro_id fread($fp,filesize("last_id.txt"))+1;
fclose($fp);

$ruta 'users_imgs/temp' ;
$temp $ruta .'/'$id_usuario'-'$nro_id.'.jpg';

if(
move_uploaded_file($_FILES['fichero']['tmp_name'], $temp)) {
    
mysql_query("INSERT INTO fotos (id_usr,titulo,id_galeria) values ('$id_usuario','$titulo','$id_gal')");
    
$last_id mysql_insert_id($link);
    
//abro el archivo y borro el contenido
    
$fp fopen("last_id.txt","w+");
             
//escribo el número de id de este último registro
    
fwrite($fp,$last_id);
    
fclose($fp);

saludos, Deet.
  #3 (permalink)  
Antiguo 24/05/2007, 15:02
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 19 años, 4 meses
Puntos: 1
Re: Problema con campo autonumerico.

Gracias idolo!!! hay mucha diferencia de velocidad en tomar el numero de un registro a hacerlo desde un txt?????
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:02.