Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/04/2009, 12:43
Avatar de kurokishi
kurokishi
 
Fecha de Ingreso: enero-2009
Ubicación: Tenochtitlán
Mensajes: 109
Antigüedad: 15 años, 3 meses
Puntos: 1
como utilizar bien el while?

Buenas tardes, pues el problema es el siguiente, mediante un script y checo algunos datos en una BD,mientras existen datos con la sentencia while hago que vaya imprimiendo los datos, de manera local sale bien, solo muestra los resultados reales.
Sin embargo al subirlo ya al servidor y checar este proceso, el while me imprime de 2 a tres veces cada registro de la BD, y no se a que se deba.

Ya intente poner algunos parametros para evitar la repeticion de los valores, sin embargo cuando realizo esto no me iomprime ningun valor .
Código PHP:
<?php
session_start
();
$_SESSION['usuario'];
$_SESSION['nivel'];
$_SESSION['nickname'];
$con=pg_connect("host=127.0.0.1 port=5432 user=japones password=j4p0n35 dbname=japones");
    if (!
$con)
    {
        echo 
"
                    <html>
                    <head>
                        <link href='../nihongo.css' rel='stylesheet' type='text/css'>
                    </head>
                        <body style='background-color:transparent;' oncontextmenu='return false'>
                            <p class='titulo'>Error al conectarse a la Base de datos.</p>
                        </body>
                    </html>"
;
    }
    else
    {
        if (isset(
$_POST['cuenta']))
        {
            if (empty(
$_POST['cuenta']))
            {
                echo 
"
                    <html>
                    <head>
                        <link href='../nihongo.css' rel='stylesheet' type='text/css'>
                    </head>
                        <body style='background-color:transparent;' oncontextmenu='return false'>
                            <p class='titulo'>Debe llenar el campo de Número de cuenta.</p>
                        </body>
                    </html>"
;
            }
            else
            {
                
$cuenta=$_POST['cuenta'];
                
$sql="SELECT usuario, calificacion, usuario FROM renshu1 WHERE usuario='$cuenta'";
                
$query=pg_query($sql);
                
$detalle=pg_query($sql);// **uso de otro query
                
$show=pg_fetch_array($query);
                
                if (
pg_num_rows($query)!=0)
                {
                    if (
$show!=0)
                    {
                    echo 
"
                    <html>
                    <head>
                        <link href='../nihongo.css' rel='stylesheet' type='text/css'>
                    </head>
                        <body style='background-color:transparent;' oncontextmenu='return false'>
                            <p class='titulo'>Calificaciones de la Unidad 1.</p>
                            <center>
                            <table class='table'>
                                <tr>
                                    <td class='table1'>
                                    <p class='ejemplo1'>Numero de cuenta:</p>
                                    </td>
                                            <td class='table1'>
                                                <p class='ejemplo1'>Calificación</p>
                                            </td>
                                </tr>"
;
                                while (
$show=pg_fetch_array($detalle)<= $show['calificacion'])//al poner esta restriccion no me aparece ningun dato
                                
{
                                echo 
"
                                    <tr>
                                        <td class='table1'>
                                            <p class='notas1'>"
.$show['usuario']."</p>
                                        </td>
                                                <td class='table1'>
                                                    <p class='notas1'>"
.$show['calificacion']."</p>
                                                </td>
                                    </tr>"
;
                                }
                            echo 
"    
                            </table>
                            </center>
                        </body>
                    </html>"
;
                    exit;
                    }
                    else
                    {
                    echo 
"
                    <html>
                    <head>
                        <link href='../nihongo.css' rel='stylesheet' type='text/css'>
                    </head>
                        <body style='background-color:transparent;' oncontextmenu='return false'>
                            <p class='titulo'>El alumno aun no tiene calificación.</p>
                        </body>
                    </html>"
;
                    }
                }    
                else
                {
                    echo 
"
                    <html>
                    <head>
                        <link href='../nihongo.css' rel='stylesheet' type='text/css'>
                    </head>
                        <body style='background-color:transparent;' oncontextmenu='return false'>
                            <p class='titulo'>El alumno no existe en el sistema.</p>
                        </body>
                    </html>"
;
                }
                
                
            }
        }
    }
?>
Bueno el uso de otro query para checar los datos en la bd hasta a mi se me hace algo malo, sin embargo si utilizo el query 'original' ($query) NO me muestra el primer registro de la BD, y al dejarlo con otro query SI muestra todos los datos.
Bueno, pues espero me puedan decir en que estoy equivocado, de antemando gracias.
Salu2!
__________________
海賊王 に なろ!

Última edición por kurokishi; 14/04/2009 a las 12:44 Razón: explicacion