Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Mostrar varias consultas mysql en tabla

Estas en el tema de Mostrar varias consultas mysql en tabla en el foro de PHP en Foros del Web. Hola amigos como estan espero que de lo mejor. Bueno les comento tengo una pagina php en la cual estoy dibujando una tabla, y ahora ...
  #1 (permalink)  
Antiguo 01/02/2013, 18:31
 
Fecha de Ingreso: abril-2012
Mensajes: 6
Antigüedad: 12 años, 7 meses
Puntos: 0
Mostrar varias consultas mysql en tabla

Hola amigos como estan espero que de lo mejor.

Bueno les comento tengo una pagina php en la cual estoy dibujando una tabla, y ahora quiero llenar esta tabla con varias consultas mysql , por que ? bueno pasa que en esta tabla mostrare el total de registros de diversas columnas, entonces tengo pensado llenar las columnas con uan query mysql para cada columna.

Pero no se como mostrar el valor de mi consulta en la columna. Ya que pongo mi consulta y la muestro la variable en la tabla pero no me manda nada solo me aparece el campo vacio .

Código PHP:
/* Abrir la base de datos */
  
$conx mysql_connect ("localhost","root","");
  if (!
$conx) die ("Error al abrir la base <br/>"mysql_error()); 
  
mysql_select_db("cyber") OR die("Connection Error to Database");    

/* Primer query para saber el total de registros de ISC */

$query mysql_query ("SELECT COUNT( * ) AS TOTAL
FROM usuarios, sesiones
WHERE usuarios.Numero_Control = sesiones.Numero_Control
AND usuarios.Sexo =  'M'
AND usuarios.especialidad =4
AND MONTH( Fecha ) =11
AND YEAR( Fecha ) =2012
GROUP BY usuarios.Especialidad
LIMIT 0 , 30"
,$conx);


echo 
"<table border=1 cellpadding=4 cellspacing=0>";

/* encabezados*/
 
echo "<tr>
         <th colspan=5> Estadisticas </th>
       <tr>
         <th> ISC 2004 </th><th> ISC 2010 </th><th> CONTABILIDAD </th>
         <th> Informatica </th><th> Industrial </th>
      </tr>"
;

/*Primero quier mostrar una query, logicamente seran varias querys*/
 
echo "<tr>
         <td align='right'>"
.$query." </td>
         <td> $row </td>
         <td> $row </td>
         <td> $row </td>
         <td> $row </td>
      </tr>"
;

echo 
"</table>"
  #2 (permalink)  
Antiguo 01/02/2013, 19:15
 
Fecha de Ingreso: septiembre-2005
Ubicación: Ourense
Mensajes: 25
Antigüedad: 19 años, 2 meses
Puntos: 1
Respuesta: Mostrar varias consultas mysql en tabla

Hola, no sé si te entiendo bien, pero en tu codigo $query no imprime nada puesto
que la función mysql_query devuelve un resource que tendrás que tratar para obtener
los datos a mostrar.

Entiendo que quieres obtener los usuarios de cada especialidad, y según puedo intuir
vas a hacer una consulta por cada especialidad contado sus usuarios en un determinado
mes, no sería necesario hacer varias consultas, podrías obtener todo en una, para ello,
debes realizar un par de modificaciones en el codigo:

1. cambia la consulta a (suponiendo que la tabla especialidades tiene un campo id como clave primaria y otro nombre donde se indica la especialidad):

"SELECT count(*) as total_sexo_m_especialidad, especialidades.nombre as nombre_especialidad FROM
usuarios JOIN sesiones JOIN especialidades
WHERE usuarios.Numero_Control = sesiones.Numero_Control
AND usuarios.especialidad = especialidades.id
AND usuarios.Sexo = 'M'
AND MONTH( Fecha ) =11
AND YEAR( Fecha ) =2012
GROUP BY usuarios.especialidad
LIMIT 0 , 30


2. luego para recorrer los resultados:

while ($row = mysql_fetch_assoc($query)) {
echo $row['total_sexo_m_especialidad'];
echo " -- ";
echo $row['nombre_especialidad'];
echo "<br>"
}


lo anterior listaría en pantalla los usuarios del mes 11 año 12 de cada especialidad:

ISC -- 3
Contabilidad -- 0
Informática -- 24

etc...


Espero haberte entendido, y ayudado.... ya que el campo fecha no tengo muy claro de donde sale....

Un saludo.
  #3 (permalink)  
Antiguo 01/02/2013, 21:30
 
Fecha de Ingreso: abril-2012
Mensajes: 6
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Mostrar varias consultas mysql en tabla

He tomado como nota lo que me comentas , tiens razon puede saber todas en una sola query, y asi es en la consola de sql si me manda los datos de cada carrera, pero cuando lo paso por php, solo me imprime los resultados, osea los numeros, y no me sale el nombre de columna .

Código PHP:
$query mysql_query ("SELECT count(*) as total_sexo_m_especialidad, usuarios.Especialidad FROM 
usuarios JOIN sesiones 
WHERE usuarios.Numero_Control = sesiones.Numero_Control 
AND usuarios.Sexo = 'M' 
AND MONTH( Fecha ) =11 
AND YEAR( Fecha ) =2012 
GROUP BY usuarios.especialidad 
LIMIT 0 , 30"
,$conx);
   
  
  while (
$row mysql_fetch_assoc($query)) 
echo 
$row['total_sexo_m_especialidad'];
echo 
" -- ";
echo 
$row['nombre_especialidad'];
echo 
"<br>" 

lo que me sale en pantalla solo es :

112911741410853672 --

no me estan saliendo las columnas y filas .

Nota: cuando le pongo corchetes en el ciclo , no me muetra nada y marca error, no se que tengo mal.

saludos
  #4 (permalink)  
Antiguo 02/02/2013, 09:44
 
Fecha de Ingreso: septiembre-2005
Ubicación: Ourense
Mensajes: 25
Antigüedad: 19 años, 2 meses
Puntos: 1
Respuesta: Mostrar varias consultas mysql en tabla

Te faltan las llaves en el while:

Código PHP:
  while ($row mysql_fetch_assoc($query))  
{
echo 
$row['total_sexo_m_especialidad']; 
echo 
" -- "
echo 
$row['nombre_especialidad']; 
echo 
"<br>"

y después en $row['nombre_especialidad'] te marca error porque no está en la
consulta SQL, es decir tendría que ser:

Código:
SELECT count(*) as total_sexo_m_especialidad, usuarios.Especialidad as nombre_especialida FROM .....
lo que ocurre es que usuarios.especialidad creo que es un numero entero y no realmente
el nombre de la misma, fijate en la anterior SQL que te puse donde había un JOIN más a otra
tabla donde si debes de tener ese dato (nombre de especialidad) como cadena.

un saludo
  #5 (permalink)  
Antiguo 02/02/2013, 10:51
 
Fecha de Ingreso: abril-2012
Mensajes: 6
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Mostrar varias consultas mysql en tabla

ha ya si el join que pusiste fue considerando que tengo una tabla asociada a la de usuarios para asi saber nombre de la especialidad . Efectivamente el registro de especialidad lo tengo como un entero , osea que por ejemplo informática es el id 6 , entonces podre una tabla mas para asociarla a esta y en lugar que me mande un 6 me muestre informática.

Si no puse las llaves, cuando ponía las llaves me tiraba error justo en la llave de cierre, y las quitaba y no tiraba error, pero solo mostraba los registros consecutivos nomas. Fue raro xD.
Verificare mi código y posteo resultados.

Gracias por tu atención .


saludos

////EDITO////

Ya tengo la tabla para mostrar nombres, lo eh probado la consulta en la consola sql y si me da las especialidaddes bien, mira cuando lo corro en el navegador el php, me tira error en la supuesta llave del ciclo .

Código PHP:
<body>
<html>
<?php

/* Abrir la base de datos */
  
$conx mysql_connect ("localhost","root","admin");
  if (!
$conx) die ("Error al abrir la base <br/>"mysql_error()); 
  
mysql_select_db("cyber") OR die("Connection Error to Database");    

/* Primer query para saber el total de registros de ISC */

$query mysql_query ("SELECT count(*) as total_sexo_m_especialidad, carreras.nombre FROM 
usuarios JOIN sesiones JOIN carreras
WHERE usuarios.Numero_Control = sesiones.Numero_Control
AND usuarios.Especialidad=carreras.Especialidad 
AND usuarios.Sexo = 'M' 
AND MONTH( Fecha ) =11 
AND YEAR( Fecha ) =2012 
GROUP BY carreras.nombre
LIMIT 0 , 30"
);
   echo 
'<table width="100%" border="0">';
 while (
$row mysql_fetch_assoc($query))   

echo 
$row['total_sexo_m_especialidad'];  
echo 
" -- ";  
echo 
$row['carreras.nombre'];  
echo 
"<br>" 
}  
echo 
'</table>';
?>
</body>
</html>
Esto me tira cuando lo corro, es en donde esta la segunda llave del ciclo :
Cita:
Parse error: syntax error, unexpected '}', expecting ',' or ';' in C:\xampp\htdocs\Reportes\prueba.php on line 28
Saludos

////2da Edicion ""

Tenia error en un echo, faltaba un ;, ya me muestralos resutados, pero no me muestra lo ques el nombre de la carrera. Solo me muestra la columna total_sexo_m_especialidad, pero solo me salen los numeros, no me muestra nombre de la columna .

Última edición por boiiser; 02/02/2013 a las 11:35
  #6 (permalink)  
Antiguo 02/02/2013, 11:35
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Mostrar varias consultas mysql en tabla

El error no es la llave, si no que te hace falta el punto y coma ";" al echo "<br>" que tienes en la linea antes de la llave.....
  #7 (permalink)  
Antiguo 02/02/2013, 11:44
 
Fecha de Ingreso: abril-2012
Mensajes: 6
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Mostrar varias consultas mysql en tabla

Si ya lo eh corregido , ahora ya me muestra mis resultados correctamente, ahora mi pregunta, como puedo hacer para que ese resultado lo muestre en una tabla ? ya que los muestra asi nomas, sin ningun encabezado ni nada, y para que se vea mas ordenado lo quiero mostrar en forma de tabla .

saludos
  #8 (permalink)  
Antiguo 02/02/2013, 11:49
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Mostrar varias consultas mysql en tabla

Podes hacerlo asi:


echo '<table width="100%" border="0">';
echo "<tr><td>Titulo1</td><td>Titulo2</td></tr>";
while ($row = mysql_fetch_assoc($query))
{
echo "<tr><td>".$row['total_sexo_m_especialidad']."</td><td>".$row['carreras.nombre']."</td></tr>";
}
echo '</table>';

Etiquetas: mysql, registro, select, tabla, usuarios
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 14:11.