Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Supongamos que tenemos la base de datos de un sitio web para una inmobiliaria, donde se
almacena información sobre los inmuebles que administra la inmobiliaria y los barrios en donde
se encuentra cada inmueble.
Inmuebles
idinmueble direccion idbarrio tipo ambientes antiguedad descripcion tipodeoferta precio
Superficie 66
Gabriela
m2, 1 baño,
1 Mistral 1 casa 3 0 venta 90000
parrilla,
2990
lavadero
Medrano Superficie
2 2 departamento 2 9 alquiler 500
1052 50m2, balcón.
Salvador
María del Lavadero,
3 1 departamento 2 0 alquiler 660
Carril balcón
2000
Avalos Terraza, patio,
5 2 ph 3 25 venta 79500
1021 sup. 72m2
Ruiz de Comedor
los amplio,
7 4 casa 6 40 venta 190000
Llanos lavadero,
931 jardín
Superficie
Bruselas
13 4 departamento 2 0 cubierta: 50 venta 62000
1032 3º
m2, semipiso.
Superficie
El cubierta: 75
14 Criollo 4 departamento 3 4 m2, lavadero alquiler 1200
1344 independiente,
2 baños.
45 m2 de
Fragueiro
15 4 departamento 2 40 superficie, venta 38000
431 4º
buen estado.
96 m2, con
Tinogasta
16 4 casa 4 9 jardín al venta 92000
5820
frente.
carla.griggio@gmail.com Página 1 de 11
UTN FRBA – Professional Webmaster
Barrios
idbarrio barrio comuna localidad
1 Villa Pueyrredón 12 Capital Federal
2 Almagro 5 Capital Federal
3 Villa Urquiza 12 Capital Federal
4 Versailles 10 Capital Federal
Esta información fue almacenada en una base de datos y no como texto de un HTML ya que son
datos que pueden cambiar constantemente, ya sea por modificaciones, agregados o bajas.
Siempre que nos encontremos con un sitio que contenga información dinámica conviene delegar
toda la información a una base de datos, y que el sitio en sí se encargue de cómo mostrar esos
datos sean cuales sean, sean cuantos sean, para ahorrarnos el trabajo de estar actualizando
constantemente un archivo HTML.
A partir de esta base de datos, se realizará un script php que muestre un listado como el
siguiente, donde de todos los inmuebles almacenados en la base, sólo se mostrarán los
que estén a la venta, con su dirección, precio, antigüedad, ambientes y nombre de barrio
al que pertenecen:
Ese mismo listado será nuestra página php. Ahora, veamos por dónde empezar para
llegar a obtener ese resultado.
SIEMPRE que vaya a usar bases de datos en un script, antes de cualquier acción
relacionada se debe realizar una conexión a MySQL (el servidor de bases de datos con
el que estamos trabajando) y seleccionar la base de datos que contiene la información
que queremos mostrar (ya que en un mismo servidor pueden haber muchas bases de
datos).
Es recomendable que el código que establece esta conexión esté en un archivo aparte,
para poder reutilizar este código en todas las páginas PHP donde necesitemos
conectarnos a la base de datos.
carla.griggio@gmail.com Página 2 de 11
UTN FRBA – Professional Webmaster
conexion.php
<? mysql_connect("localhost", "root", "");
mysql_select_db("inmobiliaria");
?>
La primer línea es una función que realiza una conexión al servidor de MySQL
“localhost” (ya que estamos trabajando localmente), con username “root” y sin
password.
La segunda línea selecciona a la base de datos llamada “inmobiliaria” dentro del
servidor al que nos acabamos de conectar.
Ahora, ya que tenemos el archivo de conexión, creemos otro archivo donde se realizará
el listado, que por el momento lo único que tendrá será la inclusión de conexion.php y
el HTML básico de toda página. El archivo se llamará inmueblesVenta.php.
<body>
</body>
</html>
carla.griggio@gmail.com Página 3 de 11
UTN FRBA – Professional Webmaster
Una vez que sabemos qué consulta cumple con lo que queremos mostrar por pantalla,
guardamos a esta consulta en una variable (por ejemplo, $consulta) en nuestro script
php. Ahora, inmueblesVenta.php quedaría así:
//paso 2
$consulta="SELECT direccion, barrio, antiguedad, ambientes,
precio
FROM inmuebles,barrios
WHERE inmuebles.idbarrio=barrios.idbarrio";
?>
<body>
</body>
</html>
Hasta acá, sólo guardamos en una variable (de texto) la consulta que queremos que se
ejecute, pero todavía no “hicimos” realmente nada más que la conexión.
Para que esta consulta se ejecute en el servidor al que nos conectamos anteriormente,
usamos la función mysql_query(), que envía la consulta al servidor y devuelve el
resultado de haberla ejecutado. Ese resultado se guardará en una variable (por ejemplo,
$resultado) que almacenará la información con la que trabajaremos luego. Ese resultado
es en sí la información que queremos mostrar.
$resultado=mysql_query($consulta);
carla.griggio@gmail.com Página 4 de 11
UTN FRBA – Professional Webmaster
//paso 2
$consulta="SELECT direccion, barrio, antiguedad, ambientes,
precio
FROM inmuebles,barrios
WHERE inmuebles.idbarrio=barrios.idbarrio";
//paso 3
$resultado=mysql_query($consulta);
?>
<body>
</body>
</html>
carla.griggio@gmail.com Página 5 de 11
UTN FRBA – Professional Webmaster
Donde el “hueco” que dejamos está después de los dos puntos de cada renglón.
Por ejemplo, si queremos que este script muestre una tabla listando a todos los
inmuebles, nuestro esqueleto sólo constará de una tabla de 2 filas y tantas columnas
como datos queramos mostrar de un inmueble. La primer fila será el encabezado de la
tabla, y la segunda mostraría la información de un inmueble. Otro detalle a tener en
cuenta, es que los precios en la base de datos están sin el signo $, entonces en el
esqueleto lo agregamos, para que la estructura ya quede lista de manera que sólo le falte
la información que viene de la base.
carla.griggio@gmail.com Página 6 de 11
UTN FRBA – Professional Webmaster
Y ya que es mero HTML, se puede armar con las herramientas que provee el
Dreamweaver, como si no se tratase (todavía) de una página dinámica.
//paso 2
$consulta="SELECT direccion, barrio, antiguedad, ambientes,
precio
FROM inmuebles,barrios
WHERE inmuebles.idbarrio=barrios.idbarrio";
//paso 3
$resultado=mysql_query($consulta);
?>
<body>
<!-- PASO 4: Esqueleto HTML para la informacion dinamica -->
<h1>Inmuebles para Venta</h1>
<table width="500" border="1" cellspacing="0" cellpadding="0">
<tr>
<th>Dirección</th>
<th>Barrio</th>
<th>Antigüedad</th>
<th>Ambientes</th>
<th>Precio</th>
</tr>
<tr>
<td><!-- Hueco --></td>
<td><!-- Hueco --></td>
<td><!-- Hueco --></td>
<td><!-- Hueco --></td>
<td><!-- Hueco --></td>
</tr>
</table>
</body>
</html>
carla.griggio@gmail.com Página 7 de 11
UTN FRBA – Professional Webmaster
Cuando la consulta fue preparada para seleccionar UN solo registro, guardamos a ese
registro en forma de array en una variable (por ejemplo, $fila) antes del esqueleto en
HTML donde finalmente se mostraría la información.
$fila=mysql_fetch_array($resultado);
E iría justo antes del esqueleto HTML (por supuesto, en un bloque PHP).
A veces la consulta que hicimos a la base de datos recuperará información para muchos
registros y que no sabemos cuántos serán, como en el ejemplo concreto que estamos
viendo donde se listarán todos los inmuebles que estén a la venta.
Cuando se recupera información para muchos registros, hay que identificar qué parte
del esqueleto HTML se repetirá, y encerrarla en un while que tenga la condición
“mientras haya registros”. Esa condición es ni más ni menos que la obtención de un
registro del resultado total de la consulta y su almacenamiento en un array (como en el
CASO A).
En este ejemplo, el código HTML que se repite por cada registro que viene de la base de
datos es la segunda fila de la tabla que armamos anteriormente, entonces, desde que
empieza la fila (<tr>) hasta que termina (</tr), el código quedará encerrado por el while
mencionado, y por cada registro que haya traído la consulta, se repetirá una fila con la
estructura armada.
carla.griggio@gmail.com Página 8 de 11
UTN FRBA – Professional Webmaster
//paso 2
$consulta="SELECT direccion, barrio, antiguedad, ambientes,
precio
FROM inmuebles,barrios
WHERE inmuebles.idbarrio=barrios.idbarrio";
//paso 3
$resultado=mysql_query($consulta);
?>
<body>
<!-- paso 4: Esqueleto HTML para la informacion dinamica -->
<h1>Inmuebles para Venta</h1>
<table width="500" border="1" cellspacing="0" cellpadding="0">
<tr>
<th>Dirección</th>
<th>Barrio</th>
<th>Antigüedad</th>
<th>Ambientes</th>
<th>Precio</th>
</tr>
<?
//paso 5
while($fila=mysql_fetch_array($resultado)) { ?>
<tr>
<td><!-- Hueco --></td>
<td><!-- Hueco --></td>
<td><!-- Hueco --></td>
<td><!-- Hueco --></td>
<td><!-- Hueco --></td>
</tr>
<? } ?>
</table>
</body>
</html>
carla.griggio@gmail.com Página 9 de 11
UTN FRBA – Professional Webmaster
En $fila nos quedó almacenado un array con la misma estructura de cada registro del
resultado de la consulta a la base de datos. Si en la consulta nosotros pedimos los
campos direccion, barrio, antiguedad, ambientes y precio (en ese orden), cada vez que
se ejecute la sentencia:
$fila=mysql_fetch_array($resultado)
$fila
(valor) (valor) (valor) (valor) (valor)
“direccion” “barrio” “antiguedad” “ambientes” “precio”
Donde la primera vez, los valores serán para el primer registro en el resultado, la
segunda vez para el segundo registro, la tercera para el tercer registro, etc. Sin que esto
nos importe mucho, y pensando que del orden y la cantidad de veces que se muestre una
fila del esqueleto se encarga el ciclo while, sólo nos concentramos en rellenar los
huecos que dejamos en el esqueleto para cada campo de la tabla, refiriéndonos a cada
dato en el array $fila por el mismo nombre que figura en la consulta MySQL.
Por ejemplo, para mostrar el campo “direccion” del array $fila, habría que ejecutar la
sentencia:
echo $fila["direccion"];
Estos pasos pueden usarse para cualquier consulta con el objetivo de mostrar
información desde una base de datos en una página. Lo único que cambiaría para otros
casos sería la consulta SQL, el esqueleto HTML y el relleno del mismo, y los 3 cambios
estarían estrechamente relacionados con la información que se quiera mostrar en la
página.
carla.griggio@gmail.com Página 10 de 11
UTN FRBA – Professional Webmaster
//paso 2
$consulta="SELECT direccion, barrio, antiguedad, ambientes,
precio
FROM inmuebles,barrios
WHERE inmuebles.idbarrio=barrios.idbarrio";
//paso 3
$resultado=mysql_query($consulta);
?>
<body>
<!-- paso 4: Esqueleto HTML para la informacion dinamica -->
<h1>Inmuebles para Venta</h1>
<table width="500" border="1" cellspacing="0" cellpadding="0">
<tr>
<th>Dirección</th>
<th>Barrio</th>
<th>Antigüedad</th>
<th>Ambientes</th>
<th>Precio</th>
</tr>
<?
//paso 5
while($fila=mysql_fetch_array($resultado)) { ?>
<tr>
<td><? /* paso 6 */ echo $fila["direccion"]; ?></td>
<td><? /* paso 6 */ echo $fila["barrio"]; ?></td>
<td><? /* paso 6 */ echo $fila["antiguedad"]; ?></td>
<td><? /* paso 6 */ echo $fila["ambientes"]; ?></td>
<td>$<? /* paso 6 */ echo $fila["precio"]; ?></td>
</tr>
<? } ?>
</table>
</body>
</html>
carla.griggio@gmail.com Página 11 de 11