Select en mysql que llevado a php no muestra todos los resultado

El otro día realizando ideas para consultas en mysql y luego planteándolas en php, me ocurrido algo que no he conseguido averiguar el porque, os comento lo ocurrido.
Si veis que mi código es algo malo, no me crucifiquéis ya que no soy experto en esto.
Realizo un select, que cuando lo ejecuto en mysql funciona y aporta los datos perfectamente.

Código PHP:

$semanal = mysqli_query($con,"SELECT Agente,NombreApellidosAgente, SUM(TipoContrato='Dual')*2 + SUM(TipoContrato='Electricidad') + SUM(TipoContrato='Gas') AS Total FROM contratos WHERE EstadoAM='OK'  GROUP BY Agente ORDER BY Total DESC LIMIT 10");
    $num_semanal = mysqli_fetch_array($semanal); 

Pero cuando quiero mostrar con :

Código PHP:

<?php
if ($num_semanal > 0){
while ($fila2=mysqli_fetch_array($semanal)){
?>
 <div class="list-group-item">
<?php echo $fila2['Agente']; ?>
<span class="pull-right text-muted small"><em><i>Total <?php echo $fila2['Total']; ?></i></em></span>
 </div>
<?php
    }
        }else{ echo 'No hay Top Ventas Semanal.';
    }
?>

Como se puede ver el 1 numero de la lista no aparece al ordenarlo por ORDER BY DESC. Cuando lo ordeno al contrario, ASC, y quito el limite de 10 aparecen todas las personas y el que mas ha vendido bajo.


¿Porque si que funciona con ORDER BY Total ASC pero con DESC desaparece el ese registro? Que estoy haciendo mal!

1 Respuesta

Respuesta
1

Si el tipo de dato de columna no es numérico te lo toma como si fuera texto. Es por ello que no lo ordena de forma numérica.

Este dato no se que sea $fila2, sin embargo posiblemente sea por eso que no aparezca el primer registro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas