Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema con query simple de mysql

Estas en el tema de Problema con query simple de mysql en el foro de Mysql en Foros del Web. tengo esta query: Código PHP: $result  =  mysql_query ( "select count(firma) total from mitabla group by firma order by total desc limit 5" ); while( $row = mysql_fetch_array ( $result )) {     echo  $row [ firma ] .  " - "  ...
  #1 (permalink)  
Antiguo 27/11/2008, 18:44
Avatar de _eNGeLs_  
Fecha de Ingreso: noviembre-2007
Ubicación: CDE, Paraguay
Mensajes: 278
Antigüedad: 16 años, 5 meses
Puntos: 4
Pregunta Problema con query simple de mysql

tengo esta query:
Código PHP:
$result mysql_query("select count(firma) total from mitabla group by firma order by total desc limit 5");
while(
$row=mysql_fetch_array($result))
{
    echo 
$row[firma] . " - " $row[total] . "<br>";

ahora el problema esque solo me imprimer la cantidad de veces que aparece la firma en la tabla "$row[total]" y no aparece la firma "$row[firma]".

Cual es el error?
Me parece tan simple y no puedo solucionarlo

salu2
__________________

  #2 (permalink)  
Antiguo 27/11/2008, 18:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con query simple de mysql

será por el COUNT, sabes que hace ... ??

demas, si seleccionas dos columnas o mas.. separalas por comas...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 27/11/2008, 19:24
 
Fecha de Ingreso: octubre-2008
Ubicación: Puebla, Pue
Mensajes: 33
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Problema con query simple de mysql

select count(firma)as firma, total from mitabla group by firma order by total desc limit 5
  #4 (permalink)  
Antiguo 27/11/2008, 20:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con query simple de mysql

Cita:
[...] la cantidad de veces que aparece la firma en la tabla [...]
pues precisamente eso hace COUNT contar, si querías seleccionar la firma... no hubieras usado count
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 27/11/2008, 21:43
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con query simple de mysql

La consulta correcta sería:

Código sql:
Ver original
  1. SELECT firma, COUNT(firma) total FROM mitabla GROUP BY firma ORDER BY total DESC LIMIT 5
No puedes pedir algo si no lo solicitas. En tu consulta original sólo pedías el conteo (COUNT(firma)) y lo asignabas a total, pero no pedías la firma en ningún momento.

Saludos,
  #6 (permalink)  
Antiguo 28/11/2008, 17:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con query simple de mysql

Falta el AS total para que sea correcta.

Tema trasladado a MySQL.
  #7 (permalink)  
Antiguo 28/11/2008, 17:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema con query simple de mysql

El AS es opcional desde hace años. No es necesario y sólo se conserva por compatibilidad de versiones viejas. Fue eliminado del estándar SQL en el ANSI SQL:1999.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 28/11/2008, 21:35
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con query simple de mysql

Lo mismo para asignar una referencia a las tablas cuando se usa varias:

Código sql:
Ver original
  1. SELECT mensajes.*, usuarios.nombre
  2. FROM tabla_mensajes mensajes
  3. LEFT JOIN tabla_usuarios usuarios
  4.     ON mensajes.autor = usuarios.id
  5. WHERE mensajes.id = 3
Pero es cierto, por razones de compatibilidad debiera haber puesto el AS.

Saludos,
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 18:06.