Write haof XML files: Vladimir Hernandez
(
interco@linuxbaja.org)
Fecha: mar 24 ene 2006 - 00:06:47 CET
Quoting Johnny Sanchez < johnny@inder.co.cu>:
> Buenas tardes a todos, por favor,
necesito si alguien me pudiera
> ayudar a realizar una consulta a
una base de datos, en la que luego
> esa misma consulta la pueda
mostrar a traves de paginas web, es
> decir, mostrar los datos que tengo
en mi base de datos, en una tabla
> en una pagina X, es que estoy en
un trabajo que pueda definir muchas
> cosas en mi vida, y bueno,
necesito eso lo mas pronto posible, si
> alguien me pudiera ayudar a
realizar este trabajo le estaria
> eternamente agradecido.
> Saludos.
>
> Johnny
Espero que hayas hecho algo de lectura, de otra manera...
será difícil
ayudarte. Mínimo necesitas conocer conceptos tales
como base de datos, tabla,
algo de HTML, cliente, servidor, etc. y por supuesto ya debes
saber hacer algo
en PHP, de perdida el clásico "hola mundo", y un poco
del lenguaje SQL de
consulta a bases de datos. Va:
Para la consulta de una base de datos (MySQL)
necesitarás saber el nombre de
usuario, la contraseña, y el nombre de la base de
datos de la cual extraerás
la información. Estos datos te los debe dar el
administrador de la base de
datos. La forma de conectarse a una base de datos es:
$db = mysql_connect("localhost","usuario","contrasenia");
mysql_select_db("nombre_de_la_base_de_datos",$db);
tras esto estarás conectado a la base de datos.
Actuarás pidiendo información
sobre alguna tabla, supongamos la tabla tabla_ejemplo que
contiene los campos
usuario, nombre, domicilio:
$texto_consulta = "SELECT `usuario`, `nombre`, `domicilio`
FROM
`tabla_ejemplo";
$consulta = mysql_query($texto_consulta);
ahora en la variable $consulta tienes la salida de lo que hay
en esa tabla. Si
quisieras poner restricciones podrías haber hecho que
$texto_consulta dijera
algo así como "SELECT * FROM tabla_ejemplo WHERE
nombre='Pedro'" lo que te
regresaría la lista de todos aquellos que tengan
exactamente "Pedro" en el
campo del nombre. No "pedro" ni "Juan Pedro", sólo
"Pedro". Se puede hacer lo
otro, pero por algo hay que empezar. Continúo:
La salida de PHP es el browser (navegador), por lo que
necesitarás darle
formato HTML a esa salida, pues HTML es lo que el navegador
entiende.
Para este
sencillo ejemplo que te debe seguir como punto de partida (la
idea es
ayudarte,
pero no puedo ni quiero pensar por ti) imaginemos una
variable $html que irá
acumulando todo el código HTML generado por PHP, y al
terminar le diremos a
PHP que envíe esos datos al navegador. Iniciemos la
variable:
$html = "<html><head><title>Script de ejemplo de BD</title></head><body>";
Hasta aquí tenemos sólo el encabezado de la
salida, falta ponerle el
contenido. Generalmente tendremos alguna descripción
de lo que sucede:
$html = $html."Tabla de salida de la base de datos <br />";
El operador "." (punto) sirve para unir una cadena de texto
con otra.
Si lo que
tuvieras son números y los quieres sumar usas "+". En
este caso en vez de
poner $variable = $variable."nuevo texto" puedes usar la
forma breve, que es
$variable.="texto nuevo".
Como ves el código HTML se mezcla con el resto del
texto, pues para PHP todo lo
que se maneja es texto. Ya es asunto del navegador en el lado
del cliente el
poder desplegarlo correctamente. Continuemos iniciando la
tabla en HTML y
poniéndole encabezados.
$html.= "<table><tr><td
style="font-weight:bold;">Usuario</td><td
style="font-weight:bold;">Nombre</td><td
style="font-weight:bold;">Domicilio</td></tr>";
Ya tenemos la declaración de inicio de tabla y el
primer renglón que en este
caso contiene los encabezados. Ahora sustraeremos de la
consulta su contenido,
para esto hay muchas formas de hacerlo pero usaré la
que (al menos para mi)
resulta más clara. Primero contamos cuantos renglones
de resultado hay
(podrían haber 3 personas o 300 en la tabla, no lo
sabemos ni nos interesa
saberlo previamente. Para esto es que se está haciendo
una página dinámica.
Para saber cuántos renglones de resultado hay hacemos
$cuantos = mysql_num_rows($consulta);
Luego haremos lo siguiente para recuperar cada resultado
(necesitarás leer
sobre lo que son arrays -arreglos- para entenderle,
francamente no pienso
explicar eso)
for($i=0;$i<$cuantos;$i++){
$arreglo_temporal =
mysql_fetch_row($consulta);
$html.=
"<tr><td>".$arreglo_temporal[0]."</td><td>".$arreglo_temporal[1]."</td><td>".$arreglo_temporal[2]."</td></tr>";
}
El código anterior se irá recorriendo cada uno
de los $cuantos renglones que
tenga tabla_ejemplo que correspondan a tu criterio (niguno en
este caso,
queremos todos los renglones). $arreglo_temporal
tendrá en su primera
posición la primer columna, en su segunda
posición la segunda, y así
sucesivamente. Como en este caso son sólo 3 columnas,
pues no es tan
complicado. Una vez que recorra todos los valores de la tabla
el ciclo for
terminará. Faltará cerrar los tags de HTML:
$html.= "</table></body></html>";
Hasta aquí PHP no ha mostrado nada. Ahora sigue que
mande esta información al
navegador, para que este la despliegue:
echo $html;
Así entonces, el script completo quedaría...
<?php
// conectandose a la base de datos
$db = mysql_connect("localhost","usuario","contrasenia");
mysql_select_db("nombre_de_la_base_de_datos",$db);
// creando la consulta en SQL y obteniendo su resultado de la
tabla
$texto_consulta = "SELECT `usuario`, `nombre`, `domicilio`
FROM
`tabla_ejemplo";
$consulta = mysql_query($texto_consulta);
// iniciando HTML,
$html = "<html><head><title>Script de
ejemplo de BD</title></head><body>";
// letrero de lo que verá el usuario
$html = $html."Tabla de salida de la base de datos <br
/>";
// iniciando tabla en HTML
$html.= "<table><tr><td
style="font-weight:bold;">Usuario</td><td
style="font-weight:bold;">Nombre</td><td
style="font-weight:bold;">Domicilio</td></tr>";
// contando cuantos registros se encontraron en la
consulta
$cuantos = mysql_num_rows($consulta);
//recuperándolos de la base de datos
agregándolos a $html
for($i=0;$i<$cuantos;$i++){
$arreglo_temporal =
mysql_fetch_row($consulta);
$html.=
"<tr><td>".$arreglo_temporal[0]."</td><td>".$arreglo_temporal[1]."</td><td>".$arreglo_temporal[2]."</td></tr>";
}
// cerrando HTML
$html.= "</table></body></html>";
// enviando al navegador
echo $html;
?>
Suerte en tu trabajo
-- Vladimir Hernández http://linuxbaja.org/ Linux user #374079 -- PHP Spanish Localization Talk Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Este archivo fue generado por hypermail 2.1.7 : sáb 18 mar 2006 - 18:23:29 CET