Ver Mensaje Individual
  #14 (permalink)  
Antiguo 11/06/2015, 12:51
Avatar de carlitosMiranda
carlitosMiranda
 
Fecha de Ingreso: marzo-2015
Ubicación: Colombia
Mensajes: 32
Antigüedad: 9 años, 1 mes
Puntos: 1
Respuesta: problemas con llamada a base de datos

Bueno, me perdi un poco en lo q en realidad se quiere ver como resultado. Pero lo q alcance a entender es que lo q se quiere es ver cuantos avisos existen por cada cliente. No es así?.
Ok, tengo entendido q hay 2 tablas: una llamada "Cliente" y otra "Avisos" y que existe una relacion de uno a muchos (Un cliente puede tener muchos avisos). Y por consiguiente existe una llave foranea en un "Aviso", q es basicamente la llave primaria de un "Cliente" es especifico. No?.
Pero si lo q quiere es saber "Cuántos" avisos tiene un cliente". No sería lo mismo decir: "Cuántos" registros existen (dentro de la tabla Avisos) con un codigo de cliente especifico.
Eso es lo q creo.
Y con eso comparto lo q dijo antes "jluc98", acerca de usar JOIN para las tablas.
Aqui tengo este codigo. Que hace lo q me refiero. . Ah y perdon x mi forma de programar =(
Se q puede haber mejoras
Espero sirva.

Código PHP:
Ver original
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>Avisos</title>
  5. </head>
  6. <body>
  7.     <table border="1">
  8.     <thead>
  9.     <tr>
  10.     <th>Id Cliente</th>
  11.     <th>Cliente</th>
  12.     <th># Avisos</th>
  13.     </tr>
  14.     <tbody>
  15.     <?php
  16.         $link = mysqli_connect("localhost","root",""); //conexion
  17.         mysqli_select_db($link,"consul");//nombre de la base de datos
  18.         $consultIds = "select cliente_id,nombre from cliente where 1"; //para seleccionar los nombre y los id de los clientes
  19.         $resultIds = mysqli_query($link,$consultIds);
  20.         while($ides = mysqli_fetch_assoc($resultIds)){//bucle
  21.             //Para saber cuantos registros existen en la tabla aviso con relacion a un cliente especifico
  22.             //Pero como estamos en un bucle lo hara con todos los clientes =)
  23.             $consultCliente = "select c.cliente_id from aviso as a inner join cliente as c
  24.                 on c.cliente_id=a.aviso_cliente_id
  25.                 where c.cliente_id = '".$ides['cliente_id']."'";
  26.             $resultCliente = mysqli_query($link,$consultCliente);
  27.             $numAvisosCliente = mysqli_num_rows($resultCliente);//cuenta numero de registros obtenidos
  28.             //muestra de los resultados
  29.             echo "<tr>
  30.                     <td>".$ides['cliente_id']."</td>
  31.                     <td>".$ides['nombre']."</td>
  32.                     <td>".$numAvisosCliente.(($numAvisosCliente == 1)?" Aviso":" Avisos")."</td>
  33.                   </tr>";
  34.         }
  35.         mysqli_close($link);
  36.     ?>
  37.     </tbody>
  38.     </thead>
  39.     </table>
  40. </body>
  41. </html>

Ah! y deben haber registros, claro =)
Los nombres de las columnas se han cambiado. Pues lo hice a la carrera =)
Saludos.