Ver Mensaje Individual
  #7 (permalink)  
Antiguo 24/10/2014, 01:07
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Renombrar una imagen en PHP

Podrías guardar las imágenes con un nombre tipo "imagen_5.jpg", luego, cuando vayas a guardar otra, buscas el nombre de la última imagen guardada en la BD, tomas la parte numérica (la que está entre el guión bajo y el punto), le aumentas uno y lo asignas al nombre de la nueva imagen.

Código PHP:
Ver original
  1. $consulta = "SELECT
  2.                SUBSTRING_INDEX(
  3.                    SUBSTRING_INDEX(nombre_archivo, '_', -1), '.', 1
  4.                ) + 1 AS valor
  5.             FROM tablaimagenes ORDER BY id DESC LIMIT 1";
  6. $query = mysqli_query($conexion, $consulta) or exit ('Ocurrió un error');
  7. if (mysqli_num_rows($query)){
  8.     $row = mysqli_fetch_array($query);
  9.     $nombreFinal = $nombre . '_' . $row['valor'] . $tipo; //imagen_6.jpg
  10. }
  11. else{
  12.     $nombreFinal = $nombre . '_1' . $tipo; //imagen_1.jpg
  13. }

En la consulta, tomo la parte del nombre que va desde la derecha del guión bajo y de esta, tomo la parte que va desde la izquierda del punto, le sumo 1 y, a dicho valor, le asigno 'valor' como alias. Luego, si la consulta devuelve resultados (si ya se guardaron imágenes en la BD), concateno el nombre de la nueva imagen con un guión bajo, el valor incrementado en la consulta y el tipo de imagen, caso contrario, hago el mismo proceso, solo que el valor numérico será 1 puesto que, al no devolver resultados la consulta, quiere decir de que aún no se han guardado imágenes y esta sería la primera.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 24/10/2014 a las 02:37 Razón: Actualización