Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/10/2006, 12:54
Avatar de Erikfrancisco
Erikfrancisco
 
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Pues la sentencia que utilizas debería darte resultado:

Código PHP:
mysql_query("SELECT * FROM tabla ORDER BY Num ASC",$conexion); 
A menos que hayas guardado estos números como texto y que mysql los interpreta no en un orden natural como el que nosotros conocemos comunmente sino que te los pone en un orden lexicográfico, este se interpreta como ya te habras dado cuenta en un orden no tan común, por ejemplo el "2" es mayor que la cadena "12" porque 2 viene después de 1 (12). Es algo así como ordenar por la primera letra del abecedario.

Para saber más del orden natural, checa este enlace http://www.naturalordersort.org/

Haz lo que ya te comentaron de cambiar tu tabla y si no lo quieres hacer, probablemente deberías de colocarles a estos números ceros a la izquierda y así solucionarías tu problema. Un ejemplo:

Código PHP:
<?php
$numero 
= array( 10122990 ); // suponiendo que este es tu array de numeros

foreach ( $numero as $num )
{
   
$num sprintf "%010d"$num ); // agregamos ceros a la izquierda
   
$numeros[] = $num// los guardamos en un nuevo array
}
echo 
"<p>";
sort $numeros ); // ardenamos en forma ascendente

foreach ( $numeros as $nume )
{
   echo 
$nume."<br/>";
}
?>
Como verás el secreto esta en la función sort() deberías de probar primero pasarle esta funcion a tu array directamente y si no te funciona poner los ceros a la izquierda como te comente.

Código PHP:
<?php
$numero 
= array( 10122990 ); // suponiendo que este es tu array de numeros
sort $numero );

foreach ( 
$numero as $nume )
{
   echo 
$nume."<br/>";
}
?>
Espero haberme dado a entender y que mi aporte te sirva de algo. Suerte

Última edición por Erikfrancisco; 20/10/2006 a las 13:09