HTML Таблица не показывает первую запись PostgreSQL - PullRequest
0 голосов
/ 05 апреля 2020

Мне удалось без проблем заполнить таблицу HTML пользовательскими запросами из PostgreSQL, дело в том, что когда я делаю запрос непосредственно к базе данных PostgreSQL, он показывает полные записи в соответствии с запросом, но когда я делаю это в своем PHP и заполняю им HTML, он не показывает первый

Например, у меня есть 500 записей, и я хочу, чтобы они были в DESC порядке. Это должно показать:

500
499
498
...

Но он показывает:

499
498
497
...

Таким образом, он «прыгает» первую запись всегда, с каждым запросом, который я вызываю. Что бы это могло быть? Очевидно, мне нужны все записи.

Вот код, который я использую для выполнения запроса ($ sql1), а $ conexion - это соединение с моим postgresql db:

$rs  =odbc_exec($conexion, $sql1);
$nr  =odbc_result($rs, 1);
if(!empty($nr)){
    print "
        <table width='992' border='1' class='Gtable'>
        <tr>
        <td width='46' bgcolor='#EEEDE8'><strong>Codigo<strong</td>
        <td width='46' bgcolor='#EEEDE8'><strong>Matricula</strong></td>
        <td width='100' bgcolor='#EEEDE8'><strong>Municipio</strong></td>
        <td width='150' bgcolor='#EEEDE8'><strong>Barrio</strong></td>
        <td width='80' bgcolor='#EEEDE8'><strong>Concepto</strong></td>
        <td width='50' bgcolor='#EEEDE8'><strong>Tipo Susp.</strong></td>
        <td width='200' bgcolor='#EEEDE8'><strong>Observacion</strong></td>
        <td width='156' bgcolor='#EEEDE8'><strong>Cliente</strong></td>
        <td width='151' bgcolor='#EEEDE8'><strong>Direccion</strong></td>
        <td width='151' bgcolor='#EEEDE8'><strong>Telefono</strong></td>
        <td width='151' bgcolor='#EEEDE8'><strong>F.Grabacion</strong></td>
        <td width='151' bgcolor='#EEEDE8'><strong>Planificacion</strong></td>
        <td width='151' bgcolor='#EEEDE8'><strong>Inicio</strong></td>
        <td width='151' bgcolor='#EEEDE8'><strong>Finalizacion</strong></td>
        <td width='151' bgcolor='#EEEDE8'><strong>Efectiva</strong></td>
        <td width='151' bgcolor='#EEEDE8'><strong>Descripcion de Cierre</strong></td>
        <td width='151' bgcolor='#EEEDE8'><strong>Contratista</strong></td>
        <td width='151' bgcolor='#EEEDE8'><strong>Empleado</strong></td>
        <td width='151' bgcolor='#EEEDE8'><strong>F.Cierre</strong></td>
        <td width='151' bgcolor='#EEEDE8'><strong>Genero</strong></td>
        <td width='151' bgcolor='#EEEDE8'><strong>Cerro</strong></td>
        </tr>";

        while($result =odbc_fetch_array($rs)){
                print "<tr>
                    <td align='left' valign='top'>".$result['cod_otrb']."</td>
                    <td align='left' valign='top'>".$result['cod_pred']."</td>
                    <td align='left' valign='top'>".$result['descripcion']."</td>
                    <td align='left' valign='top'>".$result['brdesc']."</td>
                    <td align='left' valign='top'>".$result['tqdesc']."</td>
                    <td align='left' valign='top'>".$result['cod_ttrb']."</td>
                    <td align='left' valign='top'>".$result['spdesc']."</td>
                    <td align='left' valign='top'>".$result['prnombre']."</td>
                    <td align='left' valign='top'>".$result['direccion']."</td>
                    <td align='left' valign='top'>".$result['telefono']."</td>
                    <td align='left' valign='top'>".$result['fecha_grab']."</td>
                    <td align='left' valign='top'>".$result['fecha_pla']."</td>
                    <td align='left' valign='top'>".$result['fecha_ini_trb']."</td>
                    <td align='left' valign='top'>".$result['fecha_pre_cierre']."</td>
                    <td align='left' valign='top'>".$result['efectiva']."</td>
                    <td align='left' valign='top'>".$result['otdesc']."</td>
                    <td align='left' valign='top'>".$result['ctnombre']."</td>
                    <td align='left' valign='top'>".$result['emnombre']."</td>
                    <td align='left' valign='top'>".$result['fecha_cierre']."</td>
                    <td align='left' valign='top'>".$result['usr_genera']."</td>
                    <td align='left' valign='top'>".$result['usr_cierra']."</td>
                    ";

        }
        print"</table>";
}else{
    print "<font color='#CC3333'><strong>No Hay Registros</strong></font>";
}

1 Ответ

1 голос
/ 06 апреля 2020

Ваша проблема (как указано @Sean в комментариях) состоит в том, что эта строка:

$nr =odbc_result($rs, 1);

читает первую строку из набора результатов, и вы не выводите данные из этой строки. Чтобы обойти это, я бы порекомендовал структуру if ... do ... while:

if ($result = odbc_fetch_array($rs)) {
    // output the table headers here
    do {
        // output the row data
    } while ($result = odbc_fetch_array($rs));
}
else {
    // no data to output
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...