Foros del Web » Programando para Internet » PHP »

Select que en php llevado a php no muestra 1 resultado

Estas en el tema de Select que en php llevado a php no muestra 1 resultado en el foro de PHP en Foros del Web. Buenos días a todos, Antes de nada me gustaría presentarme soy Jimmy y soy nuevo posteando en el foro, estoy empezando ha aprender en todo ...
  #1 (permalink)  
Antiguo 04/02/2016, 07:26
 
Fecha de Ingreso: febrero-2016
Mensajes: 2
Antigüedad: 8 años, 2 meses
Puntos: 0
Select que en php llevado a php no muestra 1 resultado

Buenos días a todos,

Antes de nada me gustaría presentarme soy Jimmy y soy nuevo posteando en el foro, estoy empezando ha aprender en todo este mundo del php y mysql.

He leído muchísimos post vuestros ayudando a otras personas que me han servido para ir desarrollando poco a poco mi conocimiento.

Pero el otro día realizando unas 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 ");
    
$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['NombreApellidosAgente']; ?>
<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.';
                                                
    }
?>
Cuando lo ordeno de manera ASC aparecen todas las personas y cuando ordeno de manera DESC hay personas que no aparecen!!

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

Muchas gracias de antemano porla ayuda y los consejos!!

Última edición por jimlok; 04/02/2016 a las 07:31 Razón: puse un limit que no tenia que poner
  #2 (permalink)  
Antiguo 04/02/2016, 09:48
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: Select que en php llevado a php no muestra 1 resultado

Hola jimlok,

No te preocupes que por aqui tenemos la idea de ayudar, respecto a tu consulta:

Código SQL:
Ver original
  1. 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
Esa consulta debería generar un error puesto que deberías agregar al group el campo ",NombreApellidosAgente", pero si dices que te funciona!!

debes usar la sentencia HAVING despues del where para total, buscalo en san google, eso te solucionnará el problema.

Saludos
  #3 (permalink)  
Antiguo 04/02/2016, 10:30
 
Fecha de Ingreso: febrero-2016
Mensajes: 2
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Select que en php llevado a php no muestra 1 resultado

Hola Wilmer,

Mirando tu respuesta por Google, segun leo el HAVING se usa para:

La cláusula HAVING se aplica a continuación a las filas del conjunto de resultados. Solo aparecen en el resultado de la consulta los grupos que cumplen las condiciones HAVING. Solo puede aplicar una cláusula HAVING a las columnas que también aparecen en la cláusula GROUP BY o en una función de agregado.


Ahora bien, a mi el SELECT me muestra el resultado correcto, ¿el HAVING que me aporta?el problema viene hago while que desaparecen resultados.
Adjunto imagen para que lo veas que la consulta no me genera error.



Pero con el while, de devuelve otros resultados omitiendo registros.



Es una locura!!!

Etiquetas: muestra, mysql, registro, resultado, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:16.