values in a html table loaded from mysql

0

Very good friends, I have a question:

I have the following table:

<div class="container">
<table class="table">
<thead>
<tr>
      <th scope="col">Fecha</th>
      <th scope="col">Concepto</th>
      <th scope="col">Debe</th>
      <th scope="col">Haber</th>
      <th scope="col">Intereses</th>
      <th scope="col">Saldo</th>
</tr>
</thead>';


if(mysqli_num_rows($resultquery1)>0){
    while($row1=mysqli_fetch_array($resultquery1)){


       echo ='

        <tbody>
        <tr>
        <th scope="col" colspan="6" class="text-center">'.$row1['user_uid'].'
        </th>
        </tr>


        <tr>
        <td>'.$row1['pcm_fecha'].'</td>

        <td>'.$row1['pcm_concepto'].'</td>

        <td>'.$row1['pcm_debe'].'</td>

        <td>'.$row1['pcm_haber'].'</td>

        <td>'.$row1['pcm_interes'].'</td>

        <td>'.$row1['pcm_saldo'].'</td>

        <td>
        <button type="button"class="btn btn-xs btn-danger btn_delete">X</button>
        </td>

        </tr>



        </tbody>

      <tr class="success">
      <th colspan="2" class="text-center">Totales</th>
      <td>'.$pcm_debe.'</td>
      <td>'.$pcm_haber.'</td>
      <td> '.$pcm_interes.'</td>
      <td> '.$pcm_total.'</td>
      <td></td>

  </tr>
        ';
    }
}else{
            echo ='
                <tr>
                <td colspan="6">No hay datos para mostrar</td>
                </tr>
            ';
        }

</table>
</div>

at the moment it looks like this:

How can I make the client name (user_uid) Stay on top of me?

My $ row1 ['user_uid'] can not be used outside of my while loop: (

That something like this remains:

Thanks for your time.

    
asked by Nor 29.12.2018 в 23:32
source

1 answer

1

This could be solved with the help of two variables that allow you to identify when the main%% of the% has already been printed. Your cycle header should be like:

<?php
    $header_impreso = true;
    $user_uid_auxiliar = "";
    while( $row1 = mysqli_fetch_array($resultquery1) ) {
        $user_uid = $row1['user_uid'];
        //Aquí verificamos que la variable auxiliar no sea igual al valor original del valor recuperado de la base de datos
        if ( $user_uid != $user_uid_auxiliar ) {
            //La primera vez que entra va a ser deiferente por lo tanto se va a imprimir una vez hasta que el valor recuperado siguiente de la base de datos cambie 
            echo '
                <tr>
                    <td colspan="6" align="center">'.$row1['user_uid'].'</td>
                </tr>
            ';
            //Asignamos el valor a la variable auxiliar para que la próxima y posteriores veces que entre en el ciclo  ya no se imprima
            $user_uid_auxiliar = $user_uid;

            // si el valor de la variable auxiliar cambia porque el valor recuperado de la base de datos en el ciclo cambia, vamos a setear la variable $header_impreso para que imprima otra vez la cabecera
            $header_impreso = false;            
        }
        //Aquí verificamos que header_impreso sea falso para imprimir la cabecera
        if ( ! $header_impreso ) {
            echo '
                <tr>
                    <td align="center">Fecha</td>
                    <td align="center">Concepto</td>
                    <td align="center">Debe</td>
                    <td align="center">Haber</td>
                    <td align="center">Intereses</td>
                    <td align="center">Saldo</td>
                </tr>
            ';
            //Asignamos el valor a true para que la próxima y posteriores veces que entre en el ciclo ya no se imprima
            $header_impreso = true;
        }
        //Imprimimos el resto de la información
        echo '
            <tr>
                <td>'.$row1['pcm_fecha'].'</td>

                <td>'.$row1['pcm_concepto'].'</td>

                <td>'.$row1['pcm_debe'].'</td>

                <td>'.$row1['pcm_haber'].'</td>

                <td>'.$row1['pcm_interes'].'</td>

                <td>'.$row1['pcm_saldo'].'</td>
            </tr>
        ';  
    }
?>
    
answered by 30.12.2018 / 07:39
source