Foros del Web » Programando para Internet » PHP »

ordenar usando archivos de texto

Estas en el tema de ordenar usando archivos de texto en el foro de PHP en Foros del Web. aloha!! muchachos... Cómo lo hago???, tengo un listado de bandas de música (mas o menos 75) y necesito un script que las organice alfabeticamente y ...
  #1 (permalink)  
Antiguo 17/02/2003, 18:02
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 15 años, 6 meses
Puntos: 0
Pregunta ordenar usando archivos de texto

aloha!!

muchachos... Cómo lo hago???, tengo un listado de bandas de música (mas o menos 75) y necesito un script que las organice alfabeticamente y las ordene en una tabla sin usar mySql. Para no complicar, en una tabla de una sola celda, sería algo así:

Código PHP:
...
$result=mysql_query("SELECT * FROM tabla_bandas ORDER BY nombre_banda ASC");

<
table>
  <
tr
    <
td
      <
p><b>Bandas</b><br>
      (
ordenadas alfabéticamentepara ver su info click arriba)</p>
    </
td>
  </
tr>
  <
tr>
    <
td
     <
p>Abanda<br>
     
Bbanda<br>
     
Cbanda<br>
     
Dbanda</p>
    </
td>
  </
tr>
</
table>
... 
pero quiero prescindir en este caso de mySql, ya que la información de estas bandas figura en archivos de texto que son llamados con el nombre de cada banda, por ej: la banda Karamelo Santo posee un archivo de texto llamado: karamelo_santo.txt.

Entonces, recapitulando, lo que quiero que haga es que ordene alfabeticamente todas las bandas leyendo el nombre de estos archivos y cuente la cantidad de bandas existentes (es decir, la cantidad de archivos)

Por supuesto la idea no es que me regalen el script completo con la solución, sino una ayuda de que funciones debo usar para lograr lo que quiero,

desde ya gracias,
__________________
chapu
  #2 (permalink)  
Antiguo 17/02/2003, 18:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues tienes q leer el directorio q contenga esos .txt q corresponderian a "registros" de una BD cualquiera ...

Cuando los leas .. Solo tienes q guardarte en un array los nombres de los archivos ... asi q le puedes pasar un asort() por ejemplo (entre las numerosas funciones de tratamiento de arrays q tienes) para ordenarla como quieras...

Ejemplo de como leer los archivos de un directorio tienes en:

opendir()
http://www.php.net/manual/en/function.opendir.php
(y revisa tambien las funciones afines .. )

En este mensaje del foro se habló del tema y se plantearon ejemplos de uso:
http://www.forosdelweb.com/showthrea...hreadid=116115


Un saludo,
  #3 (permalink)  
Antiguo 17/02/2003, 19:05
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 15 años, 6 meses
Puntos: 0
gracias, miles!

como siempre ahí vos che!
cha' gracias ahora lo miro un poco y si no entiendo algo (muy probable) vuelvo a preguntar...

chaus!!
__________________
chapu
  #4 (permalink)  
Antiguo 17/02/2003, 22:36
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 15 años, 6 meses
Puntos: 0
y tenía que surgir un problema no?

casi todo solucionado! ya encontré la forma de revisar la carpeta en la que se encuentran los archivos de texto, los pongo en un array: $bandas y despues "intento" ordenar el array con la función sort y me devuelve un número... no entiendo??? el código es este:

<?
$dir = opendir('txt/');

while( false !== ( $file = readdir($dir) ) ) {
if ( $file!="." and $file!=".." )
$bandas[]=$file;
}

closedir($dir);

//ordena el array alfabeticamente
$bandas=sort($bandas);

for ($i=0; $i<=count($bandas); $i++){
echo $bandas[$i]."<br>\n";
}
?>

lo que veo es que todas estas funciones que ordenan arrays funcionan con clave=valor o algo por el estilo... no?

alguna sugerencia?
__________________
chapu
  #5 (permalink)  
Antiguo 18/02/2003, 00:26
Avatar de Jano.cl  
Fecha de Ingreso: diciembre-2001
Ubicación: Chile
Mensajes: 258
Antigüedad: 16 años
Puntos: 0
En esta parte: $bandas[]=$file; estas asginando el resultado del readdir al array $bandas, por ende para "loopear" por ese array vas a necesitar del foreach() . Por ejemplo:


foreach($bandas as $algo){

echo $algo."<br>\n";

}
  #6 (permalink)  
Antiguo 18/02/2003, 16:05
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

A ver si aprendemos a leer el manual. Vuelve a leer la definicion de sort() en el manual y dime que esta haciendo esta linea:
Código PHP:
$bandas=sort($bandas); 
No precisamente lo que pensabas.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 18/02/2003, 22:06
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 15 años, 6 meses
Puntos: 0
ya estap...

hey muchachos, antes que nada gracias por responder y seguir ayudando a esta comunidad php-piana...

el problema lo resolví justo después de publicar este post

en vez de:

$bandas=sort($bandas);

es:

sort($bandas);

simplemente sacar el "$bandas=", ese era el error...

chau y gracias nuevamente!!
__________________
chapu
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 20:12.