tengo este código que al subir un archivo se fija si ya existe,
como? al hacer una consulta a la base de datos pregunto si el nombre del archivo ya esta guardado, si es así lo renombra y vuelve a hacer una consulta a la base y vuelve a preguntar si el nuevo nombre existe, si es así le suma al contador y vuelve a renombrar
Código PHP:
Ver original
/**saber extension y nombre**/ /**si existe el archivo lo renombra**/ $cont=1; $sql_query="select nombre_archivo from repositorio where nombre_archivo='$fileName'"; //pregunto en mi base de datos si ya existe ese nombre if($row['nombre_archivo']==$fileName){ //si llega a haber coincidencia $fileName=$nombre_base."(".$cont.").".$extension; echo "si existe ".$fileName; $sql_query2="select nombre_archivo from repositorio where nombre_archivo='$fileName'"; //pregunto en mi base de datos si el nuevo nombre ya existe if($row2['nombre_archivo']==$fileName){ //si llega a haber coincidencia $cont++; $fileName=$nombre_base."(".$cont.").".$extension; echo "si existe otra ves".$fileName; } } } }
y funciona pero no es lo que necesito, me explico:
por ejemplo:
subo presentacion1.ppt -> lo guarda ok
subo otra vez presentacion1.ppt -> me muestra el echo1 y el nuevo nombre si existe presentacion1(1).ppt lo guarda ok
subo otra vez presentacion1.ppt -> me muestra el echo1 y echo 2 con el nuevo nombre si existe otra ves presentacion1(2).ppt lo guarda ok
ya tengo en la base:
presentacion1.ppt
presentacion1(1).ppt
presentacion1(2).ppt
ahora
subo otra vez presentacion1.ppt -> me muestra el echo1 y echo 2 con el nuevo nombre si existe otra ves presentacion1(2).ppt
y lo guardaria y tendría en la base:
presentacion1.ppt
presentacion1(1).ppt
presentacion1(2).ppt
presentacion1(2).ppt
se soluciona poniendo otra consulta a la base despues de re-renombrar el archivo, pero que pasa si se quiere guardar una y otra vez el mismo archivo? tendría que hacer consultas infinitamente o algo asi
como podría hacer para que se hiciera recursivo o iterativo???
es decir cada vez que renombre se haga la misma consulta a la base hasta que ya no encuentre coincidencias se salga del ciclo???
gracias