Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   No me muestra todos los registros (https://www.clubdelphi.com/foros/showthread.php?t=208)

__cadetill 08-05-2003 09:24:01

No me muestra todos los registros
 
Hola amigos

Estoy empezando con esto del PHP y MySQL y me surge un problemilla. Tengo el siguiente script

Código:

        // imprimimos resultado de la Query
        $NFilas = mysql_num_rows($IdConsulta);
        $Tabla = "<table width=\"98%\" border=\"1\">\n";
        $Tabla = $Tabla."<tr>\n";
        $Tabla = $Tabla."<td width=\"64\"><font size=\"2\"><b>Fecha</b></font></td>\n";
        $Tabla = $Tabla."<td width=\"64\"><font size=\"2\"><b>Secci&oacute;n</b></font></td>\n";
        $Tabla = $Tabla."<td width=\"494\"><font size=\"2\"><b>Acci&oacute;n</b></font></td>\n";
        $Tabla = $Tabla."</tr>\n";
        for ( $i = 0; $i < $NFilas; $i++) 
        {
                $ResultQuery = mysql_fetch_array($IdConsulta);
                $Tabla = $Tabla."<tr>\n";
        $Tabla = $Tabla."<td width=\"64\"><font size=\"2\">$ResultQuery[0]</font></td>\n";
        $Tabla = $Tabla."<td width=\"64\"><font size=\"2\">$ResultQuery[1]</font></td>\n";
        $Tabla = $Tabla."<td width=\"494\"><font size=\"2\">$ResultQuery[2]</font></td>\n";
                $Tabla = $Tabla."</tr>\n";
    }
        $Tabla = $Tabla."</table>\n";
        print($Tabla);

Y el problema que tengo es que no me muestro todos los resultados de la consulta (me falta 1!!!!).

P.D. : ya se que el codigo es malo (tb se aceptan sugerencias al respecto :p )

Gracias

chutipascal 08-05-2003 11:25:42

Hola Cadetill.

No se exactamente que te pasa pero en lugar de usar un bucle for next para recorrer una consulta, usa un while

Código:

<table>
<?php
while ($fila = mysql_fetch_object($sql)){
?><tr><td><?php
print $fila->CODIGO; ?></td><td><?php
print $fila->DESCRIPCION; ?></td><tr>
<?php
}
?>
</table>


kayetano 08-05-2003 11:31:10

Hola

De momento no te puedo asegurar que el codigo que pongo a continuacion funcione correctamente ya que no has puesto la sentencia SQL, igual lo que esta mal es eso.

Código:

        <table width="98%" border="1">
        <tr>
                <td width="64"><font size="2"><b>Fecha</b></font></td>
                <td width="64"><font size="2"><b>Sección</b></font></td>
                <td width="494"><font size="2"><b>Acción</b></font></td>
        </tr>
<?
        // imprimimos resultado de la Query
        while ( $ResultQuery = mysql_fetch_row( $IdConsulta ) ) {
?>
        <tr>
              <td width="64"><font size="2"><?=$ResultQuery[0]?></font></td>
        <td width="64"><font size="2"><?=$ResultQuery[1]?></font></td>
        <td width="494"><font size="2"><?=$ResultQuery[2]?></font></td>
        </tr>
<?        }        ?>
        </table>

Comentarte que existen dos funciones muy parecidas:
mysql_fetch_array y mysql_fetch_row
La funcion es la misma, obtener los datos de un registro, pero se diferencian en que con la primera podemos acceder tanto por el indice como por el nombre del campo ( ej. miQuery[0] o miQuery["codigo"] ) y con la segunda solo podemos acceder por el indice. Te digo todo esto porque si vas a trabajar siempre con indices es mejor que utilices la segunda opcion.

Pues nada, prueba el codigo y me comentas que tal.

__cadetill 08-05-2003 16:00:47

jajajajaja, si es que estoy tonto!!! Ya me funciona :D

os explico. Primero de todo lo he hecho como me comentabais, con un bucle while...do con la funcion mysql_fetch_row. Gracias por la sugerencia.

Pero, el problema no era ese (y no lo habeis podido deducir al no poneros todo el codigo, fallo mio). Resulta que, justo antes de la 1era linea de codigo que he mandado, tenia esta

Código:

        // Obtenemos resultado de la Query
        $ResultQuery = mysql_fetch_array($IdConsulta);

y claro, esta linea se "me comia" el primer registro de la consulta SQL y, claro, me salian todos los registros menos el primero. Pero que fallo de principiante!!! :o

De todas maneras, gracias por los consejos y los ejemplos que me habies enviado, me han hecho ver el error que tenia :cool:

Pos eso, que gracias y nos leemos

chutipascal 13-05-2003 16:23:43

Claro te zampabas un bocato del plato (con alevosia y en la cocina) antes de servirlo a la mesa y al pollo le faltaba un muslo!

:D

Un saludo.


La franja horaria es GMT +2. Ahora son las 20:37:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi