domingo, 13 de junio de 2010

Ordenar Cadenas (texto) Alfabeticamente con PHP => Ayudandonos de MySql (tablas temp)


Bueno aqui les dejo un forma de como ordenar cadenas alfabeticamente (semejante al metodo de burbuja, claro esto es para texto), ayudandonos de las funciones que trae la base de datos Mysql en el ordenamiento.

Les esplico un poco, vamos a mostrar los archivos que tenemos en una carpeta, pero lo queremos ver en forma ordenada (alfabeticamente), la cual
DEBE haber muchas formas de ordenarlas con PHP, pero aqui les doy una forma mas (creo ) , en este ejemplo voy a CREAR UNA TABLA TEMPORAL, esta me va a servir para insertar los registros en ella, una vez insertado solo me basta hacerle un SELECT * TABLA_TEMP ORDER BY a la tabla temporal.

Aqui les dejo mi ejemplo, +o- explicado, si les gusta comentennnnn



<?php
/* primero nos conectamos a nuestra base de datos, en mi caso yo uso una  clase que hereda la conexion */
include_once '../class/capa_datos.class.php';
$objD = new capa_datos(); //instanciamos la clase

//aqui creamos la tabla TEMPORAL

$resp $objD->consultar("CREATE TEMPORARY TABLE listado_temp(nombre TINYTEXT);");


//verificamos que se halla creado correctamente
if(!$resp){
    echo 
"Se produjo un error, Intentelo en unos minutos";
    exit();
    }

$path="subidos/";
$directorio=dir($path);
//en mi caso yo quiero listar los archivos que tengo en una carpeta   (subidos/)
//con lo cual uso la funcion READ(), la cual lee todos los archivos que  tengo en esta carpeta



while ($archivo $directorio->read()){    
//como ven aqui, miestras el READ va leyendo, yo voy insertanto EN LA  TABLA TEMPORAL lo que READ() lee
    
$resp2 $objD->consultar("insert into listado_temp  values('$archivo')");
}

//una vez leido todo cierro el directorio o finalizo el READ()
$directorio->close();

//ahora que ya la tabla esta llena solo me falta hacer un simple select y
//decirle que los muestre ordenado, por lo cual le paso
//la instruccion ORDER BY {nombre de la columna}

$rf $objD->consultar("select * from listado_temp ORDER BY nombre  ASC");

//recoro la tabla temporal con un while

$i 0;
while(
$row mysql_fetch_row($rf)){
  
//como ven empiezo a imprimir los datos de la tabla temporal
       
echo "<div><a  href='bajar.html?baja=$row[0]'>".$row[0]."</a></div>";

$i++;
}

?>




Recuerden que la tabla temporal existira mientras la conexión este abierta si es que nosotros no la destruimos antes. Una vez cerrada la conexión la tabla será destruida y el espacio que ocupava (en memória o disco) será liberado.

Espero les ayude en algo

---------------------------------------
http://www.videosconvida.com
---------------------------------------

No hay comentarios:

Publicar un comentario