Sie sind auf Seite 1von 6

Mostrar el contenido de una tabla MySQL en HTML - PHP Lenguaje de programacin PHP Explicamos en este truco cmo conectarnos

a una base de datos MySQL Server mediante PHP. Os explicamos cmo mostrar en una tabla HTML el contenido de los registros devueltos por una consulta SQL realizada sobre un servidor de base de datos MySQL Server mediante PHP. Funciones PHP necesarias Utilizaremos las siguientes funciones PHP: mysql_connect: realiza la conexin al servidor de MySQL Server, pasndole como parmetro el nombre del servidor o la IP, el usuario y la contrasea de MySQL con permisos suficientes. mysql_select_db: conexin al catlogo, esquema o base de datos de MySQL Server. mysql_query: ejecucin de consulta SQL en el servidor de MySQL Server. mysql_fetch_array: funcin MySQL que obtiene en una matriz los registros del resultado de la ejecucin de una consulta SQL. mysql_free_result: libera la memoria del resultado obtenido de la ejecucin de la consulta SQL. mysql_close: cierra la conexin establecida con la base de datos. Cdigo PHP y HTML A continuacin mostramos el cdigo PHP que debe guardarse en un fichero con extensin .php en la carpeta que deseemos de nuestro servidor Apache: <table border="1" cellspacing=1 cellpadding=2 style="font-size: 8pt"><tr> <td><font face="verdana"><b>Cdigo</b></font></td> <td><font face="verdana"><b>Cliente</b></font></td> <td><font face="verdana"><b>Importe</b></font></td> <td><font face="verdana"><b>Fecha</b></font></td> </tr> <?php $link = @mysql_connect("localhost", "root","password") or die ("Error al conectar a la base de datos."); @mysql_select_db("ajpdsoft", $link) or die ("Error al conectar a la base de datos.");

$query = "SELECT f.codigo, c.nombre cliente, f.importetotal, f.fecha " . "FROM factura f, tercero c " . "WHERE f.codigocliente = c.codigo"; $result = mysql_query($query); $numero = 0; while($row = mysql_fetch_array($result)) { echo "<tr><td width=\"25%\"><font face=\"verdana\">" . $row["codigo"] . "</font></td>"; echo "<td width=\"25%\"><font face=\"verdana\">" . $row["cliente"] . "</font></td>"; echo "<td width=\"25%\"><font face=\"verdana\">" . $row["importetotal"] . "</font></td>"; echo "<td width=\"25%\"><font face=\"verdana\">" . $row["fecha"]. "</font></td></tr>"; $numero++; } echo "<tr><td colspan=\"15\"><font face=\"verdana\"><b>Nmero: " . $numero . "</b></font></td></tr>"; mysql_free_result($result); mysql_close($link); ?> </table> Ejemplo de salida: Cdigo Cliente Importe Fecha 1 AjpdSoft 29.0000 2006-07-03 00:00:00 2 Fernando Alonso 232.0000 2006-07-03 00:00:00 3 XXX 928.0000 2006-07-03 00:00:00 Nmero: 3 Script de creacin de las tablas "factura" y "tercero" CREATE TABLE ajpdsoft.factura ( `codigo` int(10) unsigned NOT NULL auto_increment,

`numero` varchar(15) default NULL, `importetotal` decimal(19,4) default NULL, `baseimponible` decimal(19,4) default NULL, `porcentajeiva` decimal(19,4) default NULL, `importeiva` decimal(19,4) default NULL, `porcentajedescuento` decimal(19,4) default NULL, `importedescuento` decimal(19,4) default NULL, `codigocliente` int(10) unsigned NOT NULL default '0', `fecha` datetime default '0000-00-00 00:00:00', `cobrado` char(1) default NULL, `observacion` varchar(255) default NULL, `importecobrado` decimal(19,4) default NULL, `codusuarioa` int(10) unsigned default NULL, `codusuariom` int(10) unsigned default NULL, `fechaa` datetime default NULL, `fecham` datetime default NULL, `contabiliza` char(1) default NULL, `imprimida` char(1) default NULL, `enviada` char(1) default NULL, `fechaenvio` datetime default NULL, `piefactura` text, `fechavencimiento` datetime default NULL, `serie` char(2) NOT NULL default '', PRIMARY KEY (`codigo`), UNIQUE KEY `Indice_Numero_Factura` USING HASH (`numero`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 CREATE TABLE `tercero` ( `codigo` int(10) unsigned NOT NULL auto_increment, `nombre` varchar(100) NOT NULL default '', `cif` varchar(15) default NULL, `fechaalta` datetime default NULL, `direccion` varchar(100) default NULL, `telefono` varchar(50) default NULL,

`poblacion` varchar(100) default NULL, `provincia` varchar(50) default NULL, `cp` int(11) default '0', `personacontacto` varchar(100) default NULL, `web` varchar(200) default NULL, `email` varchar(200) default NULL, `fax` varchar(50) default NULL, `pais` varchar(45) default NULL, `tipo` varchar(10) default NULL, `observacion` varchar(255) default NULL, `ccc` varchar(20) default NULL, `riesgomaximo` float default NULL, `deudaalcanzada` float default NULL, `codigoformapago` int(10) unsigned default NULL, `preciohora` float default NULL, `preciomensual` float default NULL, `precioanual` float default NULL, `preciodesplazamiento` float default NULL, `porcentajedto` float default NULL, `codusuarioa` int(10) unsigned default NULL, `codusuariom` int(10) unsigned default NULL, `fechaa` datetime default NULL, `fecham` datetime default NULL, `piefactura` text, `nombre2` varchar(100) default NULL, PRIMARY KEY (`codigo`), UNIQUE KEY `tercero_nombre_cif_tipo` USING BTREE (`nombre`,`cif`,`tipo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 Requisitos tcnicos: Servidor de base de datos MySQL. Sistema operativo Windows GNU Linux. Servidor Web Apache con PHP y enlace con MySQL.

Como mostrar el contenido de una BD con PHP


Mostrar resultados desde una base de datos, es una accin sencilla desde PHP: <? $sql = mysql_query("SELECT * FROM tabla WHERE campo = condicion ORDER BY campo DESC LIMIT cantidad_de_resultados"); while ($mostrar = mysql_fetch_array($sql)){ print $mostrar[campo]; print "<br>"; } mysql_free_result($sql); ?>

El proceso simplificado de consulta sera este. Ahora pasemos al tema del artculo, y es el de mostrar los resultados con diferentes formatos y presentaciones: 1) Mostrar cada resultado con colores de fondo alternativo: Para hacer esto, modificaremos el cdigo anterior, y usaremos css para cambiar el color de fondo: <? $estado = 0; $sql = mysql_query("SELECT * FROM tabla WHERE campo = condicion ORDER BY campo DESC LIMIT cantidad_de_resultados"); while ($mostrar = mysql_fetch_array($sql)){ if($estado = 0){ print "<div class="blanco">$mostrar[campo]</div>"; $estado = 1; }else{ print "<div class="rojo">$mostrar[campo]</div>"; $estado = 0;

} } mysql_free_result($sql); ?>

Creo que es una forma muy sencilla para hacer esto, aunque tambin hay que decir que no es la ms optimizada. 2) Mostrar los resultados en dos columnas: Esta es otra de las questiones mas solicitadas, nuestra solucin para el problema es la siguiente: <? print "<table border="0" cellspacing="0" cellpadding="0" width="100%">"; print "<tr><td width="50%">"; $contador = 1; $sql = mysql_query("SELECT * FROM tabla WHERE campo = condicion ORDER BY campo DESC LIMIT cantidad_de_resultados"); while ($mostrar = mysql_fetch_array($sql)){ print $mostrar[campo]; print "<br>"; if ($contador == (ceil)((mysql_num_rows($sql)/2)+1)){print ("</td><td width="50%">");} $numero++; } mysql_free_result($sql); ?> Pensamos que es un sistema tambin sencillo para realizar esta operacin. Esperamos que todo esto os sirva de algo.

Das könnte Ihnen auch gefallen