Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/03/2016, 19:40
maurousa33
 
Fecha de Ingreso: diciembre-2013
Mensajes: 7
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: Problema con consulta php mysql

Cita:
Iniciado por loncho_rojas Ver Mensaje
Qué tanto sabes de PHP? o es una copia de lo que te genera el DW nada más? Si bien no comprendo cual es tu problema real, ya que no entendí a que "tabla dinamica" te refieres, existen bucles FOR, WHILE, DO WHILE, FOREACH para hacer que las cosas se repitan, pero como te digo, no se a que te refieres con eso de TABLA DINAMICA...
buenas noches.
muchas gracias por su ayuda, voy a tratar de ser mas preciso con mi duda.

el objetivo principales saber que clientes no han pagado un servicio cierto mes del año.

tengo una base de datos con varias tablas entre esas está la tabla clientes que es donde están todos los clientes que tengo y la tabla pagos que se alimenta constantemente cada vez que un cliente hace un pago.

Hice una consulta a la tabla pagos pasandole 2 variable por POST que son mes y año de la siguiente forma:

para que me muestre los resultados de las personas que ya pagaron ese mes del año.
Código PHP:
$colname_pagos "-1"
if (isset(
$_POST['mes'])) { 
  
$colname_pagos $_POST['mes']; 

$colname2_pagos "-1"
if (isset(
$_POST['year'])) { 
  
$colname2_pagos $_POST['year']; 

mysql_select_db($database_login$login); 
$query_pagos sprintf("SELECT * FROM pagos WHERE mes = %s AND year=%s"GetSQLValueString($colname_pagos"text"),GetSQLValueString($colname2_pagos"double")); 
$pagos mysql_query($query_pagos$login) or die(mysql_error()); 
$row_pagos mysql_fetch_assoc($pagos); 
$totalRows_pagos mysql_num_rows($pagos); 
de esta forma sabré por ejemplo los idclientes de las personas que pagaron el mes de Marzo del año 2016.
esta consulta funciona perfectamente y me imprime los siguientes resultados en una tabla que es a la que yo llamo tabla dinamica:

Código HTML:
<table border="1">
  <tr>
    <td>idpago</td>
    <td>idcliente</td>
    <td>documento</td>
    <td>mes</td>
    <td>year</td>
    <td>valor</td>
    <td>fecha_pago</td>
    <td>afiliacionnueva</td>
    <td>efectivo</td>
    <td>datafono</td>
    <td>consignacion</td>
    <td>ingresado_por</td>
    <td>observaciones</td>
  </tr>
  <?php do { ?>
    <tr>
      <td><?php echo $row_pagos['idpago']; ?></td>
      <td><?php echo $row_pagos['idcliente']; ?></td>
      <td><?php echo $row_pagos['documento']; ?></td>
      <td><?php echo $row_pagos['mes']; ?></td>
      <td><?php echo $row_pagos['year']; ?></td>
      <td><?php echo $row_pagos['valor']; ?></td>
      <td><?php echo $row_pagos['fecha_pago']; ?></td>
      <td><?php echo $row_pagos['afiliacionnueva']; ?></td>
      <td><?php echo $row_pagos['efectivo']; ?></td>
      <td><?php echo $row_pagos['datafono']; ?></td>
      <td><?php echo $row_pagos['consignacion']; ?></td>
      <td><?php echo $row_pagos['ingresado_por']; ?></td>
      <td><?php echo $row_pagos['observaciones']; ?></td>
    </tr>
    <?php } while ($row_pagos = mysql_fetch_assoc($pagos)); ?> 
ahora realizo otra consulta a una tabla distinta en la misma base de datos que se llama clientes, utilizando como variable el resultado idcliente
Código PHP:
<?php echo $row_pagos['idcliente']; ?>
de la consulta anterior.

de la siguiente forma.

Código PHP:

$colname_nopagan 
"-1"

if (isset(
$row_pagos['idcliente'])) { 
  
$colname_nopagan $row_pagos['idcliente']; 

mysql_select_db($database_login$login); 
$query_nopagan sprintf("SELECT * FROM clientes WHERE idcliente <> %s"GetSQLValueString($colname_nopagan"int")); 
$nopagan mysql_query($query_nopagan$login) or die(mysql_error()); 
$row_nopagan mysql_fetch_assoc($nopagan); 
$totalRows_nopagan mysql_num_rows($nopagan); 
?> 
y ahora me muestre los resultados de esa consulta en la siguiente tabla.

Código HTML:
<table border="1">
  <tr>
    <td>idcliente</td>
    <td>documento</td>
    <td>apellido1</td>
    <td>apellido2</td>
    <td>nombres</td>
    <td>fecha_ingreso</td>
    <td>fecha_retiro</td>
    <td>activo</td>
    <td>salario</td>
    <td>fijo</td>
    <td>celular</td>
    <td>direccion</td>
    <td>eps</td>
    <td>nombre_eps</td>
    <td>pension</td>
    <td>nombre_fondo</td>
    <td>arl</td>
    <td>riesgo</td>
    <td>taxista</td>
    <td>arl_ind</td>
    <td>caja</td>
    <td>afiliado_emp</td>
    <td>empresa</td>
    <td>correo</td>
    <td>observaciones2</td>
  </tr>
  <?php do { ?>
    <tr>
      <td><?php echo $row_nopagan['idcliente']; ?></td>
      <td><?php echo $row_nopagan['documento']; ?></td>
      <td><?php echo $row_nopagan['apellido1']; ?></td>
      <td><?php echo $row_nopagan['apellido2']; ?></td>
      <td><?php echo $row_nopagan['nombres']; ?></td>
      <td><?php echo $row_nopagan['fecha_ingreso']; ?></td>
      <td><?php echo $row_nopagan['fecha_retiro']; ?></td>
      <td><?php echo $row_nopagan['activo']; ?></td>
      <td><?php echo $row_nopagan['salario']; ?></td>
      <td><?php echo $row_nopagan['fijo']; ?></td>
      <td><?php echo $row_nopagan['celular']; ?></td>
      <td><?php echo $row_nopagan['direccion']; ?></td>
      <td><?php echo $row_nopagan['eps']; ?></td>
      <td><?php echo $row_nopagan['nombre_eps']; ?></td>
      <td><?php echo $row_nopagan['pension']; ?></td>
      <td><?php echo $row_nopagan['nombre_fondo']; ?></td>
      <td><?php echo $row_nopagan['arl']; ?></td>
      <td><?php echo $row_nopagan['riesgo']; ?></td>
      <td><?php echo $row_nopagan['taxista']; ?></td>
      <td><?php echo $row_nopagan['arl_ind']; ?></td>
      <td><?php echo $row_nopagan['caja']; ?></td>
      <td><?php echo $row_nopagan['afiliado_emp']; ?></td>
      <td><?php echo $row_nopagan['empresa']; ?></td>
      <td><?php echo $row_nopagan['correo']; ?></td>
      <td><?php echo $row_nopagan['observaciones2']; ?></td>
    </tr>
    <?php } while ($row_nopagan = mysql_fetch_assoc($nopagan)); ?>
</table> 
supongamos que en la consulta inicial obtuve 5 resultados, ahora quiero que en la segunda consulta busque esos 5 clientes que pagaron y no me los muestre sino que me muestre todos los otros que no estan para de esa forma saber quienes no pagaron.

el problema que tengo es que la consulta no se repite esas 5 veces o el numero de veces que tiene como resultado la tabla de la primera consulta sino que solamente se hace una vez.

todas las consultas a la bd las genera dreamweaver y los resultados tambien, no soy un experto en php y mysql.

les agradeceria que le echaran un vistazo al codigo de mi segunda consulta para que se repita el mismo numero de veces que arrojó la primera consulta como resultado