Ver Mensaje Individual
  #5 (permalink)  
Antiguo 23/11/2004, 09:05
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Esa funcion:
sort($archivo_array[$i]);
en el bucle while() no corresponde ...

Se trata de ir "creando" tu array a base de lo que va leyendo el bucle while() que usas y sus funciones readir() y demás ... para que al terminar este (de generar tu array) apliques la función sort() o equivalente para ordenar el array ..

Esta función:
$archivo = str_replace("_", " ", $archivo);

deberías aplicarla en el mismo bucle while() que usas para obtener los nombres de los archivos de tu directorio indicado y que a su vez generas ese array ....

El código siguiente:
$sql = "UPDATE famosas SET fotos='$num' WHERE id_famosa='$seccion'";
$result = mysql_query($sql);

Que haces bajo tu bucle foreach() .. NO corresponde ahí .. estás ejecutando N veces la misma instrucción de "update" cuando ese dato es constante y lo obtienes ya más arriaba (en ese bucle while) a traves de ese contador que vas incrementando en dicho bucle .. Debes hacer ese "UPDATE" fuera del bucle foreach() . .justo fuera del } a la altura del echo "Hay ..... fotos ....".


El bucle foreach() .. tampoco es correcto:
foreach ($archivo_array[$i] as $archivo)

Tendría que ser:

Código PHP:
foreach ($archivo_array as $archivo){ 
echo 
"Nombre archivo: "$archivo['archivo']."<br>";
echo 
"Fecha creacion: "$archivo['fecha_creacion']."<br><br>";

Y .. el array "asociativo" bidimensional que generas .. ya te comenté que no se puede ordenar como un array normal con funciones como sort() sino que debes emplear array_multisort() .. también te comenté que hay soluciones por parte de los usuarios de dicha función en el manual oficial de PHP en www.php.net/array_multisort para ordenar de forma cómoda un array de ese tipo por el "campo" que indiques.

Un saludo,