Mostrar los datos de una consulta.

5 oct 2010

Mostrar los datos de una consulta
Ahora que ya sabemos conectar con el servidor de BD, veremos como mostrar los datos por pantalla.
Consulta1.php
            <html>
                <body>
                <?php
                               $link = mysql_connect( “localhost”, “root”, “password”);
                               Mysql_select_db(“prueba”, $link);
                               $result = mysql_query(“SELECT nombre, email FROM agenda”, $link);
                               echo “<table border = '1'> \n”;
                               echo “<tr><td>Nombre</td><td>E-Mail</td></tr> \n”;
                               while ($row = mysql_fetch_row($result))
                                               echo “<tr><td>$row[0]</td><td>$row[1]</td></tr> \n”;
                               echo “</table> \n”;
                ?>                </body>                </html>
En este script hemos utilizado la sentencia de control while(), que ejecuta una serie de instrucciones mientras la condición sea verdadera.
Es esta ocasión while() evalua la función mysql_fetch_row(), que devuelve un array con el contenido del registro actual (que se almacena en $row) y avanza una posición en la lista de registros devueltos en la consulta SQL.
La función mysql_fetch_row() tiene un pequeño problema, es que el array que devuelve solo admite referencias numéricas a los campos obtenidos de la consulta. El primer campo referenciado es el 0. El segundo el 1 y así sucesivamente. En el siguiente script solucionaremos este pequeño inconveniente.
Consulta2.php
            <html>
                <body>
                <?php
                               $link = mysql_connect(“localhost”, “root”, “password”);
                               mysql_select_db(“mydb”, $link);
                               $result = mysql_query(“SELECT nombre, email FROM agenda”, $link);
                               if ($row = mysql_fetch_array($result)){
                                               echo “<table border = '1'> \n”;
                                               echo “<tr><td>Nombre</td><td>E_Mail</td></tr> \n”;
                                               do {
                                                               echo “<tr><td>”.
                                                               $row[“nombre”].
                                                               “</td><td>”.
                                                               $row[“email”].
                                                               “</td></tr> \n”;
                                               }
                               }                             
else
                echo “ ¡ No se ha encontrado ningún registro !”;
                ?>                </body>                </html>
Esencialmente, este script hace lo mismo que el anterior. Almacenamos en $row el registro actual con la función mysql_fetch_array() que hace exactamente lo mismo que mysql_fetch_row(), con la excepción que podemos referenciar a los campos por su nombre ($row[“email”], en vez de por un numero.
Con la sentencia if/else, asignamos a $row ell primer registro de la consulta, y en caso de no haber ninguno (else) mostramos un mensaje (“No se ha encontrado…”), mientras que con la sentencia do/while, nos aseguramos que se nos muestren todos los registros devueltos por la consulta en caso de haber más de uno.
Hay que destacar la utilización del punto(.), como operador para concatenar cadenas.

============================Ejemplos de Consultas=============================

0 comentarios: