Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] ¿Cómo se puede hacer en PHP?

Estas en el tema de ¿Cómo se puede hacer en PHP? en el foro de PHP en Foros del Web. Hola a todos. Feliz año nuevo! Tengo esta consulta en MYSQL: "SELECT idusuarios, nombre, COUNT(idusuarios) FROM seleccion GROUP BY (idusuarios) HAVING COUNT(idusuarios) ORDER BY COUNT(idusuarios) ...
  #1 (permalink)  
Antiguo 02/01/2015, 05:49
Musiker
Invitado
 
Mensajes: n/a
Puntos:
¿Cómo se puede hacer en PHP?

Hola a todos.

Feliz año nuevo! Tengo esta consulta en MYSQL: "SELECT idusuarios, nombre, COUNT(idusuarios) FROM seleccion GROUP BY (idusuarios) HAVING COUNT(idusuarios) ORDER BY COUNT(idusuarios) DESC" y me da correctamente la salida que deseo (mostrar cada "idusuario" de una tabla y las veces que se repite):

idusuario------COUNT(idusuario)

1--------------- 2 (veces se repite el "idusuario")
2--------------- 1 (veces se repite el "idusuario")
3--------------- 1 (veces se repite el "idusuario")


pero el problema es que en PHP no sé cómo la puedo hacer, y me gustaría que me ayudaran a generarla. Lo he intentado con "mysql_fetch_array", de esta manera:

while ($reg=mysql_fetch_array($sql))
{
echo "---------------<br>";

echo "el nombre del usuario es: ".$reg['nombre']."<br>";
echo "La idusuario es: ".$reg['idusuarios']."<br>";

echo "---------------";
}


Pero da como resultado:

el nombre del usuario es: usuario_uno
La idusuario es: 1
------------------------------
el nombre del usuario es: usuario_dos
La idusuario es: 3
------------------------------
el nombre del usuario es: usuario_tres
La idusuario es: 2


¿Alguna idea? Muchas gracias por adelantado y espero haberme explicado correctamente :)
  #2 (permalink)  
Antiguo 02/01/2015, 06:20
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: ¿Cómo se puede hacer en PHP?

Código MySQL:
Ver original
  1. SELECT idusuarios, nombre, COUNT(idusuarios)
  2. FROM seleccion
  3. GROUP BY (idusuarios)
  4. HAVING COUNT(idusuarios)
  5. ORDER BY COUNT(idusuarios) DESC"

En esa query, el HAVING es innecesario. salvo que tengas un idusuario que pueda devolverte cero (0), no agrega ni quita nada.

Por lo demás, ¿cuál es exactamente el problema? ¿Lo quieres poner en forma de tabla, pero no sabes como?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 02/01/2015, 06:28
Musiker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Cómo se puede hacer en PHP?

Muchas gracias por la aclaración y por responder tan pronto! :) Pues el problema es que no sé cómo generar en PHP la salida que me da en MYSQL, no importa si es en forma de tabla o de cualquier otra manera. Es decir, me gustaría generar en PHP la salida anterior de:


idusuario--------COUNT(idusuario)

1---------------- 2 (veces que se repite el idusuario)
2 ---------------- 1 (veces que se repite el idusuario)
3---------------- 1 (veces que se repite el idusuario)

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Código MySQL:
Ver original
  1. SELECT idusuarios, nombre, COUNT(idusuarios)
  2. FROM seleccion
  3. GROUP BY (idusuarios)
  4. HAVING COUNT(idusuarios)
  5. ORDER BY COUNT(idusuarios) DESC"

En esa query, el HAVING es innecesario. salvo que tengas un idusuario que pueda devolverte cero (0), no agrega ni quita nada.

Por lo demás, ¿cuál es exactamente el problema? ¿Lo quieres poner en forma de tabla, pero no sabes como?
  #4 (permalink)  
Antiguo 02/01/2015, 06:44
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: ¿Cómo se puede hacer en PHP?

Hay muchísimos ejemplos de cómo recorrer un resultado de una consulta y mostrarlo en forma de tabla. Es raro que no hayas usado alguno.

Este es uno, encontrado aquí:

Código PHP:
Ver original
  1. <?php
  2.     require_once 'Connection.simple.php';
  3.     $result;
  4.  
  5.     $conn = dbConnect();
  6.     // Create the query
  7.     $sql = 'SELECT * FROM empleado';
  8.     // Create the query and asign the result to a variable call $result
  9.     $result = $conn->query($sql);
  10.     // Extract the values from $result
  11.     $rows = $result->fetchAll();
  12.     // Since the values are an associative array we use foreach to extract the values from $rows
  13.  ?>
  14.  <!DOCTYPE html>
  15. <html lang="en">
  16.     <head>
  17.         <meta charset="UTF-8" />
  18.         <title>Query data sending an ID</title>
  19.         <meta http-equiv="X-UA-Compatible" content="IE=9,crome" />
  20.         <meta name="copyright" content="Datasoft Engineering 2013"/>
  21.         <meta name="author" content="Reedyseth"/>
  22.         <meta name="email" content="[email protected]"/>
  23.         <meta name="description" content="Query data sending an ID" />
  24.         <link rel=stylesheet href="../css/style01.css">
  25.     </head>
  26.     <body>
  27.         <table border="1">
  28.         <thead>
  29.             <tr>
  30.                 <th>ID</th>
  31.                 <th>Nombre</th>
  32.                 <th>Email</th>
  33.                 <th>Telefono</th>
  34.             </tr>
  35.         </thead>
  36.         <tbody>
  37.         <?php
  38.             foreach ($rows as $row) {
  39.         ?>
  40.             <tr>
  41.                 <td><a href="searchEmployee.php?id=<?php echo $row['id_empleado']; ?>"><?php echo $row['id_empleado']; ?></a></td>
  42.                 <td><?php echo $row['nombre']; ?></td>
  43.                 <td><?php echo $row['email']; ?></td>
  44.                 <td><?php echo $row['telefono']; ?></td>
  45.             </tr>
  46.         <?php } ?>
  47.         </tbody>
  48.     </table>
  49. </html>

A partir de la línea 27 podrás ver cómo construye la tabla en la vista, y cómo recorre el array obtenido para poner los datos.
Mi único consejo es que uses alias en la salida de la consulta cuando uses funcioens de agregación, para simplificar el identificador de columnas:
Código MySQL:
Ver original
  1. SELECT idusuarios, nombre, COUNT(idusuarios) TotalIds
  2. FROM seleccion
  3. GROUP BY idusuarios
  4. ORDER BY COUNT(idusuarios) DESC"
Así, en lugar de llamarla por "COUNT(idusuarios)", la invocas por "TotalIds".
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 03/01/2015, 08:02
Musiker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Cómo se puede hacer en PHP?

Muchas gracias!!

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Hay muchísimos ejemplos de cómo recorrer un resultado de una consulta y mostrarlo en forma de tabla. Es raro que no hayas usado alguno.

Este es uno, encontrado aquí:

Código PHP:
Ver original
  1. <?php
  2.     require_once 'Connection.simple.php';
  3.     $result;
  4.  
  5.     $conn = dbConnect();
  6.     // Create the query
  7.     $sql = 'SELECT * FROM empleado';
  8.     // Create the query and asign the result to a variable call $result
  9.     $result = $conn->query($sql);
  10.     // Extract the values from $result
  11.     $rows = $result->fetchAll();
  12.     // Since the values are an associative array we use foreach to extract the values from $rows
  13.  ?>
  14.  <!DOCTYPE html>
  15. <html lang="en">
  16.     <head>
  17.         <meta charset="UTF-8" />
  18.         <title>Query data sending an ID</title>
  19.         <meta http-equiv="X-UA-Compatible" content="IE=9,crome" />
  20.         <meta name="copyright" content="Datasoft Engineering 2013"/>
  21.         <meta name="author" content="Reedyseth"/>
  22.         <meta name="email" content="[email protected]"/>
  23.         <meta name="description" content="Query data sending an ID" />
  24.         <link rel=stylesheet href="../css/style01.css">
  25.     </head>
  26.     <body>
  27.         <table border="1">
  28.         <thead>
  29.             <tr>
  30.                 <th>ID</th>
  31.                 <th>Nombre</th>
  32.                 <th>Email</th>
  33.                 <th>Telefono</th>
  34.             </tr>
  35.         </thead>
  36.         <tbody>
  37.         <?php
  38.             foreach ($rows as $row) {
  39.         ?>
  40.             <tr>
  41.                 <td><a href="searchEmployee.php?id=<?php echo $row['id_empleado']; ?>"><?php echo $row['id_empleado']; ?></a></td>
  42.                 <td><?php echo $row['nombre']; ?></td>
  43.                 <td><?php echo $row['email']; ?></td>
  44.                 <td><?php echo $row['telefono']; ?></td>
  45.             </tr>
  46.         <?php } ?>
  47.         </tbody>
  48.     </table>
  49. </html>

A partir de la línea 27 podrás ver cómo construye la tabla en la vista, y cómo recorre el array obtenido para poner los datos.
Mi único consejo es que uses alias en la salida de la consulta cuando uses funcioens de agregación, para simplificar el identificador de columnas:
Código MySQL:
Ver original
  1. SELECT idusuarios, nombre, COUNT(idusuarios) TotalIds
  2. FROM seleccion
  3. GROUP BY idusuarios
  4. ORDER BY COUNT(idusuarios) DESC"
Así, en lugar de llamarla por "COUNT(idusuarios)", la invocas por "TotalIds".

Etiquetas: mysql, select, sql, 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 18:16.