UNIDAD 7: PHP INTRODUCION A LAS BASES DE DATOS

TEMA 7: MYSQL SQL SELECT CONSULTA O DESPLIEGUE

Existen una serie de operaciones y procesos que son muy comunes contra una tabla en una base de datos en disco, la mas comun es desplegar todos los renglones de la tabla que estan almacenados en disco, a este proceso le llamaremos SELECCION, consulta o despliegue.

Como se indico anteriormente la comunicacion con la base de datos se tendran que dar usando el lenguaje especializado de bases de datos llamado SQL(structured query language), la instruccion sql que se usa para resolver este problema tiene el siguiente formato:

SELECT [listacampos, * o ALL] FROM TABLA;

El procedimiento que se intenta seguir cuando se construya un programa asp.net que tenga que manipular una tabla en disco debera seguir los siguientes pasos:

1.- Crear una coneccion o enlace a la base de datos.

2.- Abrir la coneccion a la base de datos.

3.- Crear el enlace y cargarlo con la instruccion sql

4.- Crear un arreglo y cargarlo

5.- Cargar un objeto table de html con el dataset

6.- Procesar el table de html (editar un renglon, agregar un renglon, modificar un renglon, etc)

7.- Cerrar la coneccion

prog35.php

<HTML>
<FORM ACTION=prog35.php METHOD=post>
<INPUT TYPE=submit NAME=OK VALUE="SELECT"><BR>
</FORM></HTML>
<?php
if ($OK == "SELECT") {
// coneccion al servidor de bases de datos
$dbh=mysql_connect ("localhost", "lsoto_lauro", "lauro2004") or die ('problema conectando porque :' . mysql_error());
// seleccionado la base de datos
mysql_select_db ("lsoto_mibase",$dbh);
// preparando la instruccion sql
// ya estudiaron su tutorial de sql
$q = 'select * from tabla1';
// ejecutando el query
$tabla1= mysql_query($q, $dbh) or die ("problema con query");
# empezando una tabla html
echo "<HTML><TABLE Border=10 CellPadding=5><TR>";
# construyendo los encabezados de la tabla
echo "<th bgcolor=Green>CLAVE</th><th bgcolor=White>NOMBRE</th><th bgcolor=Red>EDAD</th><th bgcolor=blue>ESTATURA</th></TR>";
// ciclo de lectura del rowset($tabla1)
while($renglon = mysql_fetch_row($tabla1))
{
// desplegando en celda de tabla html
echo"<tr>";
echo "<td>".$renglon[0]."</td>";
echo "<td>".$renglon[1]."</td>";
echo "<td>".$renglon[2]."</td>";
echo "<td>".$renglon[3]."</td>";
echo"</tr>";
};
// cerrando tabla html
echo "</table>";
};
?>

Corrida:

image124.jpg

notas:

1.- revisar con cuidado el programa, proque como todo buen programa lleva incluida mucha documentacion o explicacion.

2.- Se sigue el procedimiento generico para procesar tablas

3.- Se empieza creando la forma, objetos y eventos normales para el programa.

4.- Se crea y carga una conneccion o enlace a el servidor mysql de bases de datos con la instruccion:

$dbh=mysql_connect (“localhost”, “USUARIO”, “PASSWORD”)

or die ('problema conectando porque :' . mysql_error());

$dbh ⇒ un convencion en bases de datos, que siginifica database handle (alias a base de datos)

mysql→connect() ⇒ Funcion para enlazarse a el servidor de base de datos, sus argumentos o parametros son:

Primero localhost(este es el servidor de web donde se encuentra la base de datos).

El segundo parametro 'USUARIO' es el usuario de la base de datos y el tercer parametro 'PASSWORD' es el password para la base de datos.

5.- Luego seleccionamos la base de datos a usarse con:

mysql_select_db (“lsoto_mibase”,$dbh);

6.- Se crea una string $q, que contendra la instruccion SQL apropiada.

$q = 'select * from tabla1';

7.- La instruccion $mysql_query(); se entiende que esta mandando o ejecutando la instruccion SQL a la base de datos.

ES MUY IPORTANTE ENTENDER QUE DE LAS CUATRO INSTRUCCIONES PRINCIPALES DE SQL (SELECT,INSERT,UPADTE,DELETE), SOLO SELECT REGRESA UNA TABLA VIRTUAL ( QUE EN MYSQL RECIBE EL NOMBRE DE ROWSET) DESDE EL SERVIDOR DE BASES DE DATOS AL PROGRAMA.

SIEMPRE QUE SE USE UN $mysql_query(select)SE DEBERA IGUALAR A UNA VARIABLE, PARA QUE ESTA ULTIMA ALMACENE LA TABLA VIRTUAL O ROWSET DE REGRESO, POR SUPUESTO QUE LOS OTROS PROCESOS(DELETE,INSERT,UPDATE) NI REGRESAN NI OCUPAN LA TABLA VIRTUAL.

Observar que esta usando la variable $dbh que se cargo con la coneccion a la base de datos.

8.- Luego se usa mysql_fetch_row($tabla1) para leer el primer renglon de la tabla y se carga cada columna o dato del renglon a un arreglo asociativo llamado $renglon.

9.- Se esta usando un ciclo while(fetchrow()) para leer todos los renglones de la tabla, fetchrow cada vez que lee un renglon regresa o el arreglo asociativo o regresa FALSE cuando no hay mas aareglos para leer.

10.- Observar que para accesar los renglones del arreglo se usa un indice numerico, empezando en cero(0), si se quiere usar los nombres de los campos normales, se tendria que leer la tabla virtual con la instruccion $renglon= mysql_fetch_assoc($tabla1), que funciona igual que mysql_fetchrow(), excepto que para accesar los campos ya se puede usar $renglon['clave'], $renglon['nombre']. Etc.

PERO EN ESTOS EJEMPLOS ESTOY USANDO INDICES NUMERICOS PORQUE ES MAS CORTO, MAS SENCILO Y MAS APROPIADO EN PROGRAMACION, SIENTANSE LIBRES DE USAR INDICES NUMERICOS CON FETCHROW O INDICES NORMALES CON FETCH_ASSOC.

TAREAS PROGRAMACION MYSQL PHP

1.- construir y desplegar una primera base de datos que contenga la primera tabla que disenaron en el tema de tablas.

2.- Construir una segunda base de datos que contenga cuando menos tres de las tablas ya disenadas y desplegar cualquiera de ellas usando una sola forma html, donde el usuario selecciona cual quiere desplegar.

Politica de Privacidad