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

zxeveroxz

New Member
Messages
6
Reaction score
0
Points
0
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 :confused: DEBE haber muchas formas de ordenarlas con PHP, pero aqui les doy una forma mas (creo :tongue:) , 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:
<?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 :wink:

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

misson

Community Paragon
Community Support
Messages
2,572
Reaction score
72
Points
48
Re: Ordenar Cadenas (texto) Alfabeticamente con PHP => Ayudandonos de MySql (tablas t

The overhead of using MySQL means it isn't worth using to sort data that isn't already stored in the database, especially as PHP already has sorting functions. Additionally, PHP has scandir(), which returns the contents of a directory sorted by name.
 
Last edited:

zxeveroxz

New Member
Messages
6
Reaction score
0
Points
0
Re: Ordenar Cadenas (texto) Alfabeticamente con PHP => Ayudandonos de MySql (tablas t

Gracias por tu aporte, no habia investigado esa funcion, dime tienes alguna informacion sobre SOCKET en PHP, quiero saber si se parece en algo a JAVA.

Thank you for your contribution, had not investigated this function, you tell me some information on SOCKET in PHP, I want to know if anything like JAVA.

--------------------------------------
http://mitareaperu.blogspot.com/
---------------------------------------
 

misson

Community Paragon
Community Support
Messages
2,572
Reaction score
72
Points
48
Re: Ordenar Cadenas (texto) Alfabeticamente con PHP => Ayudandonos de MySql (tablas t

Socket programming scarcely varies with platform and language, as it's usually modeled on the Berkeley socket API. See the sockets section of the PHP manual.
 
Top