cursophp+parte 9

Upload: alvear37545

Post on 09-Jan-2016

4 views

Category:

Documents


0 download

DESCRIPTION

Esta unidad continee u curs compleo soofov

TRANSCRIPT

  • Manejo de las bases de datos

    Temas:

    Conexin del servidor PostgreSQL Creacin y mantenimiento de bases de datos desde PHP Manipulacin de bases de datos y actualizaciones de registros Listado de funciones de PHP para trabajar con PostgreSQL

  • Conexin del servidor

  • Configuracin del PHP.ini1.- Modificamos el PHP.ini para agregar la extensin de pgsql. En ambiente Windows basta con teclear en men ejecutar php.ini para abrirlo y modificarlo. En linux deberas de localizarlo en la carpeta de Apache. 2.- Dentro de este archivo, en el caso de windows bastara con descomentar la siguiente lnea: extension=php_pgsql.dll 3- Todo esto con el fin de preparar la conexin. Es importante reiniciar el servidor Apache una vez guardados los campos.

  • Consultas a la Base de Datos

    Pagina index de prueba

  • Consultas a la Base de Datos $sql="SELECT * FROM tbl_region ORDER BY id_region;"; /* Ejecuta y almacena el resultado de la orden SQL en $resultado_set */ $resultado_set = pg_Exec ($conexion, $sql); $filas = pg_NumRows($resultado_set);

    /* Presenta la informacion almacenada en $resultado_set */ for ($j=0; $j < $filas; $j++) {

    echo "Id: ".pg_result($resultado_set, $j, 0)." Regin: ".pg_result($resultado_set, $j, 1)." ";

    } /* Cierra la conexion con la base de datos */ pg_close($conexion);

    ?>

  • Consultas a la Base de DatosClusula INSERT INTO

    Ejercicio_3.php

    - Agregar una Regin a la Tabla tbl_region

  • Consultas a la Base de DatosClusula INSERT INTO
  • Consultas a la Base de DatosClusula INSERT INTO pg_query($conexion,$sql) or die("El proceso de actualizacin fall: " . pg_last_error() ); pg_close($conexion);echo " ";

    }?>

  • Consultas a la Base de Datos

    Regiones Descripcin:

  • Consultas a la Base de DatosEjercicio_4.php

    Listar el contenido de la tabla Regin Colocar un link a la misma pgina que contenga el cdigo de la regin Eliminar la regin seleccionada

  • Consultas a la Base de Datosif ( $action == "borrar" ) {$id=$_GET['id'];$sql="DELETE FROM tbl_region WHERE id_region=$id;";$conexion = pg_connect("host=localhost port=5432 user =postgres password=postgres dbname=ventasdb "); if (!$conexion) { echo " Problemas de conexion con la base de datos. "; exit; } pg_query($conexion,$sql) or die("El proceso de actualizacin fall: " . pg_last_error() );echo "";}?>

  • Consultas a la Base de Datos
  • Consultas a la Base de Datos// Se hace un loop a travs del result$filas = pg_numrows($result);

    for ($i=0; $i < $filas; $i++){$estaFila = pg_fetch_row ($result,$i);$id = $estaFila[0];$descripcion = $estaFila[1];?>

  • Consultas a la Base de DatosEjercicio_5.php

    Crear un combo haciendo uso de una funcin PHP

  • Consultas a la Base de Datosfunction crear_combo($nombre_combo,$codigo_actual,$size_combo,$evento_java_script_form="",$operacion=1){$conexion = pg_connect("host=localhost port=5432 user =postgres password=postgres dbname=ventasdb ");

    if (!$conexion) { echo " Problemas de conexion con la base de datos. "; exit; } $sql="SELECT * FROM tbl_region"; $result=pg_query($conexion,$sql) or die("El proceso de actualizacin fall: " . pg_last_error() );

  • Consultas a la Base de Datos// Se hace un loop a travs del result$filas = pg_numrows($result);echo "\n";if ($filas > 0) { for ($i=0; $i < $filas; $i++){ $estaFila = pg_fetch_row ($result,$i); $codigo = $estaFila[0]; $descripcion = $estaFila[1]; if (strlen(trim($descripcion)) > 70) //Largo a mostrar en el combo $titulo=substr(trim($descripcion),0,70); else $titulo=trim($descripcion); if ($codigo_actual == trim($codigo)) echo "" . $titulo . "\n"; else echo "" . $titulo . "\n"; } //Fin del loop

  • Consultas a la Base de Datos}else { echo "No hay Datos\n"; } echo "\n"; pg_close($conexion); }//Fin de la Funcin?>

  • Consultas a la Base de Datos

    Regiones Regin:

  • Consultas a la Base de DatosEjercicio_6.php

    Trabajar con Combos anidados

    EL primer combo debe seleccionar la regin y el segundo las ciudades que guardan relacin con la regin seleccionada

    Ver Archivo Ejercicio_6.php

  • Consultas a la Base de DatosEjercicio 7

    Crear un archivo de nombre librera.php

    Crear funciones genericas de conexin a base de datos, colocarlas en el archivo librera.php

    Hacer pruebas invocando a las funciones realizadas.

  • Consultas a la Base de DatosEjercicio 8

    Listar el contenido de la tabla tbl_productos, mostrando dos registros por pagina, es decir realice una paginacin de registros.

  • Consultas a la Base de DatosEjercicio 9

    Realizar una pgina que incorpore las funciones bsicas (Consultar, Agregar, Modificar, y Eliminar) sobre la tabla tbl_clientes

  • Consultas a la Base de DatosEjercicio 10

    Visualizar el contenido de la tabla clientes haciendo uso de las funciones php suministradas por el facilitador (visualizar_ext.php)

  • Consultas a la Base de DatosEjercicio 11

    Realizar una pgina que incorpore las funciones bsicas (Consultar, Agregar, Modificar, y Eliminar) sobre la tabla tbl_productos.

    En la medida de lo posible, hacer uso de los cdigos suministrados, tales como, visualizar una tabla (visualizar_ext.php), Paginear una tabla, otros que considere.

  • Transacciones

    Las transacciones son un concepto fundamental de todos los sistemas de bases de datos.

    El punto esencial de una transaccin es que empaqueta mltiples pasos dentro de una operacin nica, todo o nada. Los estados intermedios entre cada paso no son visibles a otras transacciones concurrentes,y si ocurre alguna falla que previene que la transaccin se complete, en definitiva, ninguno de los pasos afectan a la base de datos.

  • TransaccionesBEGIN: comienza una transaccin en modo encadenado

    ROLLBACK

    Transaccin es abortadaPosibles cambios ignorados

    COMMIT: Realiza la transaccin actual.

    Los datos son modificados fsicamente en el Sistema de Almacenamiento

    LOCK: Explcitamente bloquea una tabla dentro de una transaccin

  • Ejemplo manejo de Transaccionesif (!(pg_Exec($link,"BEGIN WORK"))){ echo("Error al iniciar transaccin en la base de datos"); //exit(); si estamos en una funcion }

    $exito= pg_exec($conexion,$sql);

    if ($ exito){ pg_Exec($link,"COMMIT WORK"); } else { pg_Exec($link,"ROLLBACK WORK"); echo "No se pudo realizar la insercin ";}

  • TransaccionesEjercicio 12.- Modificar las funciones del ejercicio 9 para poder trabajar con transacciones.

  • Transaccionesif (!(pg_exec($conexion,"BEGIN WORK"))){echo("Error al iniciar transaccin en la base de datos");exit();}else{ echo "Inicio de Transaccin ";}$exito= pg_exec($conexion,$sql);// or die("El proceso de actualizacin fall: " . pg_last_error() );if (!$exito){pg_exec($conexion,"ROLLBACK WORK");echo "No se pudo realizar la insercin ";}else{ pg_exec($conexion,"COMMIT WORK");echo " ";}pg_close($conexion);

  • TransaccionesEjercicio_13:

    - Hacer uso de la funciones Adodb conection

  • Conexin con ADODB
  • Conexin con ADODB# PEAR style data retrieval$rs = $DB->Execute("select * from tbl_productos where id_productos=1");while ($array = $rs->FetchRow()) { print_r($array);}

    # Alternative URI connection syntax://$DB = NewADOConnection("mysql://$user:$pwd@$server/$db?persist");

    # No need for Connect or PConnect when using URI syntax

    $ok = $DB->Execute("update tbl_productos set nombre = 'Lapiz Mongol'");if (!$ok) mylogerr($DB->ErrorMsg());?>

  • TransaccionesEjercicio_14:

    Hacer uso de la funciones Adodb conection, e implementar una pagina php para realizar las funciones bsicas sobre la tabla vendedores