No entiendo....
Queres que en ves de listar de esta manera:
Jueves 09/02/2012
Viernes 20/05/2012
Lunes 01/012012
Miecoles 03/01/2012
Martes 02/01/2012
Lunes 05/01/2012
Liste de esta otra:
Viernes 20/05/2012
Jueves 09/02/2012
Lunes 05/01/2012
Miecoles 03/01/2012
Martes 02/01/2012
Lunes 01/012012
Pero claro con una columna en DATE seria pan comido, pero vos usas VARCHAR...
Analicemos:
El nombre del dia no es un dato util para nuestro objetivo.
Por lo tanto para poder ordenar hay que desarmar todo.
Para empezar guardemos todos los resultados en un array:
Código PHP:
$r = array( //$r de Resultado
"Viernes 20/05/2012",
"Jueves 09/02/2012",
"Lunes 05/01/2012",
"Miecoles 03/01/2012",
"Martes 02/01/2012",
"Lunes 01/012012");
Ahora lo que tenemos que hacer es crear otro arreglo con los datos que podemos analizar con PHP, en este caso la FECHA pero en formato DATE.
Código PHP:
//declaro futuro arreglo.
$a = array(); // $a de Analizados.
for($i=0;$i<count($r);$i++){
$e = explode(" ",$r[$i]); // separamos el dia con la fecha, nos interesa $e[1]
// ahora a la fecha con formato d/m/Y la modificamos para que sea Y-m-d.
$date = substr($e[1],6,2)."-".substr($e[1],3,2)."-".substr($e[1],0,2);
// y lo guardamos en un nuevo arreglo.
$a []= $date;
}
Ahora tenemos el siguiente arreglo:
Código PHP:
$a = array( //$a de Analizados
"2012-05-20",
"2012-02-09",
"2012-01-05",
"2012-01-03",
"2012-01-02",
"2012-01-01");
Ahora con
sort() ordenamos el arreglo.
ahora con un bucle devolvemos el resultado:
Código PHP:
for($i=0;$i<count($a);$i++){
$d= date('w', strtotime($a[$i])); // $d de Dia
switch($dia){
case 0:
$dia = "Domingo";
break;
case 1:
$dia = "Lunes";
break;
case 2:
$dia = "Martes";
break;
case 3:
$dia = "Miercoles";
break;
case 4:
$dia = "Jueves";
break;
case 5:
$dia = "Viernes";
break;
case 6:
$dia = "Sabado";
break;
default:
die( "Error formato fecha" );
break;
}
echo $dia." ".date("d/m/Y",strtotime($a[$i]))."<br>";
}
Despues contanos.
NOTA: fijate lo complejo que puede ser esto, solo por que un programador decidio guardar una fecha en un formato inapropiado.