Foros del Web » Programando para Internet » PHP »

Problemas con COUNT

Estas en el tema de Problemas con COUNT en el foro de PHP en Foros del Web. Holas comunidad, tengo un problemilla, como soy nuevo en esto de PHP no me doy cuento del error, disculpen la ignorancia jejeje. Bueno siguiendo con ...
  #1 (permalink)  
Antiguo 21/05/2012, 20:55
Avatar de SnakeCode  
Fecha de Ingreso: mayo-2012
Ubicación: Lima - Perú
Mensajes: 23
Antigüedad: 11 años, 11 meses
Puntos: 1
Problemas con COUNT

Holas comunidad, tengo un problemilla, como soy nuevo en esto de PHP no me doy cuento del error, disculpen la ignorancia jejeje. Bueno siguiendo con el tema, quiero obtener de mi tabla cursos todos los nombres de los cursos que estan en la tabla y al final que me diga la cantidad total de cursos.

He hecho mi codigo de esta forma:

Código PHP:
include('../conexion.php');

        
$query "SELECT COUNT(codigo) as cantidad, nombrecur FROM cursos";
        
$registros mysql_query($query$conexion);

        while(
$reg mysql_fetch_array($registros)){
            echo 
"<p>Curso: " $reg['nombrecur'] . "</p>";
            echo 
"<p>Total de cursos es : " $reg['cantidad'] . "<p>";
        } 
Y en la pagina solo me parece el primer nombre del curso y yo quiero todos los nombres en cada parrafo, no si esta mal la sentencia SQL, me imagino que si.

Gracias de antemano. Saludos!
  #2 (permalink)  
Antiguo 21/05/2012, 21:15
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problemas con COUNT

Bueno, esto es lógico, porque cuando incluyes COUNT() en tu consulta sólo te va a retornar una fila, con el total de registros, a menos que agrupes los resultados con GROUP BY: http://www.java2s.com/Code/SQL/Selec...andGROUPBY.htm
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 21/05/2012, 22:03
Avatar de SnakeCode  
Fecha de Ingreso: mayo-2012
Ubicación: Lima - Perú
Mensajes: 23
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Problemas con COUNT

Gracias por la ayuda, pero lo que yo quiero es listar primero todos los cursos, es decir su nombre y luego el total de cursos que hay. Algo como esto:

Curso: PHP
Curso: jQuery
Curso: Python
...

El total de cursos es X.

La solución que me brindas, me lista todos los cursos pero me dice el total de los cursos por nombre, y eso es lo que yo no quiero. No sé si me dejo entender o de nuevo me equivoco yo.

Gracias nuavemente y Saludos!
  #4 (permalink)  
Antiguo 21/05/2012, 23:33
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problemas con COUNT

Cita:
Iniciado por SnakeCode
No sé si me dejo entender o de nuevo me equivoco yo.
Perdón?... no entendí

Entonces creo que tienes un problema de lógica, porque no necesitas una consulta para saber cuántos cursos hay si los vas a listar todos y basta con un simple contador:

Código PHP:
Ver original
  1. // Inicializas el contador
  2. $total_cursos = 0;
  3.  
  4. while(/* mysql_fetch_algo */) {
  5.     /* echo de nombre de cada curso */
  6.     // Aquí no necesitas mostrar el total de cursos, porque
  7.     // aparecería siempre junto al nombre de cada curso
  8.     // Sólo actualizas el contador
  9.     $total_cursos ++;
  10. }
  11. echo "El total de cursos es: $total_cursos";
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 22/05/2012, 07:51
Avatar de SnakeCode  
Fecha de Ingreso: mayo-2012
Ubicación: Lima - Perú
Mensajes: 23
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Problemas con COUNT

Ok. Gracias por las respuestas.

No es para un website, sino para un ejercicio del instituto que me han dejado con esa clausula COUNT(), por eso tengo esa duda, sino lo haría con un contador como tu sugieres.

Gracias nuevamente. Saludos!
  #6 (permalink)  
Antiguo 22/05/2012, 16:59
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problemas con COUNT

Caramba! y se supone que había que adivinar todo esto desde el principio?

Pues una consulta para leer todos los nombres y al final otra para contarlos es suficiente.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 22/05/2012, 20:56
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, 4 meses
Puntos: 2658
Respuesta: Problemas con COUNT

Cita:
Iniciado por SnakeCode Ver Mensaje
Ok. Gracias por las respuestas.

No es para un website, sino para un ejercicio del instituto que me han dejado con esa clausula COUNT(), por eso tengo esa duda, sino lo haría con un contador como tu sugieres.

Gracias nuevamente. Saludos!
Ten en cuenta, como te dice Triby, que COUNT() sin más elementos te devuelve la cantidad de registros hallados, pero sin discriminar nada. No se puede usar en ese contexto para obtener además los nombres de las asignaturas.
Para obtener los nombres de las asignaturas, deberías usar GROUP BY, pero en ese caso cada registro valdría 1 en la cuenta, y no obtendrías el valor acumulado.

Existe una posibilidad, pero te alejarías de lo que parece ser la consigna.
__________________
¿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 23/05/2012, 11:40
Avatar de SnakeCode  
Fecha de Ingreso: mayo-2012
Ubicación: Lima - Perú
Mensajes: 23
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Problemas con COUNT

Cita:
Iniciado por Triby Ver Mensaje
Caramba! y se supone que había que adivinar todo esto desde el principio?

Pues una consulta para leer todos los nombres y al final otra para contarlos es suficiente.
Exacto, eso fue lo que hice para solucionar el problema, muchas gracias y saludos!!

Etiquetas: count, mysql, registro, sql, tabla
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 09:20.