Print data in a table

-1

good I have a query which will look for the payments of people and show in a table that month paid and leave blank or print that month I do not deposit, I have the following code, but that is stuck here to show the payments in your due month, that is to say if I pay in January print on the td of January and so

<div class="panel-body"> 
<div class="table-responsive"> 
<table id="tabla" style="table-layout:fixed" border="1" > 
<thead> 
<tr> 
<td width="2%">Propietario</td> 
<td>Enero</td> 
<td>Febrero</td> 
<td>Marzo</td> 
<td>Abril</td> 
<td>Mayo</td> 
<td>Junio</td> 
<td>Julio</td> 
<td>Agosto</td> 
<td>Septiembre</td> 
<td>Octubre</td> 
<td>Noviembre</td> 
<td>Diciembre</td> 
</tr> 
</thead> 
<tbody id="tbody"> 
<tr> 
<td>&nbsp;</td> 
<?php 
require_once('../conexion.php'); 
for($x=1;$x<=12;$x++){ 
$mes=mktime(0,0,0,$x,1,date("Y")); 
$fechai=date("Y-m-d",mktime(0,0,0,$x,1,date("Y"))); 
$fechaf=date("Y-m-d",mktime(23,59,59,$x,date("t",$mes),date("Y"))); 
$sql = "SELECT montod, nombre, apellido, fechadeposito FROM pago_p WHERE DATE(fechadeposito) BETWEEN '".$fechai."' AND '".$fechaf."' GROUP BY nombre "; 
$res = mysqli_query($conexion,$sql); 
while($resultado = mysqli_fetch_array($res)){} 
?> 
<td><?=$fechai?> <?=$fechaf?></td> 
<?php 
} 
?> 
</tr>
</tbody> 
</table> 
</div> 
</div>
This was the maximum that I managed to do but even if the expected result     
asked by Anderson Rey 09.09.2018 в 19:51
source

1 answer

1

After a long time, go around, this is the solution to your particular code.

<div class="panel-body"> 
<div class="table-responsive"> 
<table id="tabla" style="table-layout:fixed" border="1" > 
    <thead> 
        <tr> 
            <td width="2%">Propietario</td> 
            <td>Enero</td> 
            <td>Febrero</td> 
            <td>Marzo</td> 
            <td>Abril</td> 
            <td>Mayo</td> 
            <td>Junio</td> 
            <td>Julio</td> 
            <td>Agosto</td> 
            <td>Septiembre</td> 
            <td>Octubre</td> 
            <td>Noviembre</td> 
            <td>Diciembre</td> 
        </tr> 
    </thead> 
    <tbody id="tbody"> 

            <?php 
            require_once('../conexion.php'); 

  $ene="No Pago"; $feb="No Pago"; $mar="No Pago"; $abr="No Pago"; $may="No Pago"; $jun="No Pago"; $jul="No Pago"; $ago="No Pago"; $sep="No Pago"; $oct="No Pago"; $nov="No Pago"; $dic="No Pago"; 

                $mes=mktime(0, 0, 0, $x, 1, date("Y")); 
                $fechai=date("Y-m-d", mktime(0,0,0,$x,1,date("Y"))); 
                $fechaf=date("Y-m-d", mktime(23,59,59,$x,date("t",$mes),date("Y"))); 
                //traes los nombre individualiza la consulta por persona
                $sql = "SELECT nombre, apellido FROM pago_p WHERE DATE(fechadeposito) BETWEEN '".$fechai."' AND '".$fechaf."' GROUP BY nombre "; 
                $res = mysqli_query($conexion,$sql); 
                //de pendendiendo de cuantas personas trae hace el ciclo
                while($resultado1 = mysqli_fetch_array($res)){
                    //almacenas los nombres y apellido en variables para hacer consulta para cada persona
                    $nombre = $resultado1['nombre'];
                    $apellido = $resultado1['apellido'];
                    //consulta esa persona cuntos pago hizo en el rango que tienes
                    $sql2 = "SELECT montod, fechadeposito FROM pago_p WHERE DATE(fechadeposito) BETWEEN '".$fechai."' AND '".$fechaf."' AND nombre = $nombres AND apellido = $apellido"; 
                        $res2 = mysqli_query($conexion,$sql); 
                        //ejemplo segun veo esta se hara 2 veces
                        while($resultado2 = mysqli_fetch_array($res2)){
                            //divides la fecha que trae la consulta y capturas el mes $valor[1]
                            $valor= explode('-', $resultado2['fechadeposito']);
                            //evaluas con un switch para ver a que mes corresponde y le das el nuevo valor que es el moto del pago
                            switch ($valor[1]) {
                                case '01':
                                    $ene = $result2['montod'];
                                    break;
                                case '02':
                                    $feb = $result2['montod'];
                                    break;
                                case '03':
                                    $mar = $result2['montod'];
                                    break;
                                case '04':
                                    $abr = $result2['montod'];
                                    break;
                                case '05':
                                    $may = $result2['montod'];
                                    break;
                                case '06':
                                    $jun = $result2['montod'];
                                    break;
                                case '07':
                                    $jul = $result2['montod'];
                                    break;
                                case '08':
                                    $ago = $result2['montod'];
                                    break;
                                case '09':
                                    $sep = $result2['montod'];
                                    break;
                                case '10':
                                    $oct = $result2['montod'];
                                    break;
                                case '11':
                                    $nov = $result2['montod'];
                                    break;
                                case '12':
                                    $dic = $result2['montod'];
                                    break;
                            }
                        }
                        //imprimer los 12 td que traeran 'no pago' por defecto y si encontro un pago tendra el monto
          echo "<tr>"; 
          echo "<td>$nombre $apellido</td>"; 
          echo "<td>$ene</td>"; 
          echo "<td>$feb</td>"; 
          echo "<td>$mar</td>"; 
          echo "<td>$abr</td>"; 
          echo "<td>$may</td>"; 
          echo "<td>$jun</td>"; 
          echo "<td>$jul</td>"; 
          echo "<td>$ago</td>"; 
          echo "<td>$sep</td>"; 
          echo "<td>$oct</td>"; 
          echo "<td>$nov</td>"; 
          echo "<td>$dic</td>"; 
          echo "</tr>"; 
          //reinicia lo valores
          // iniciarValores($meses);
          $ene="No Pago"; $feb="No Pago"; $mar="No Pago"; $abr="No Pago"; $may="No Pago"; $jun="No Pago"; $jul="No Pago"; $ago="No Pago"; $sep="No Pago"; $oct="No Pago"; $nov="No Pago"; $dic="No Pago"; 
                } 
                ?> 
        </tr>
    </tbody> 
</table> 
</div> 
</div>

Unpretentious, but 100% functional. :)

    
answered by 12.09.2018 / 23:02
source