SlideShare una empresa de Scribd logo
Operaciones de
Consulta a una BD
1.
2.
3.
4.

Caso a Desarrollar........................................................................................2
1.1. Descripción del Caso .............................................................................2
1.2. Modelo de Datos ....................................................................................2
Creación de la base de datos.......................................................................3
2.1. Carpeta de Trabajo ................................................................................3
2.2. Creación de la Base de Datos ...............................................................3
MySQL Query Browser.................................................................................5
Consultas......................................................................................................6
4.1. Archivos Comunes .................................................................................6
4.2. Listado de las bases de datos del servidor ............................................8
4.3. Listar las tablas de una base de datos...................................................9
4.4. Consultar una tabla ..............................................................................11
4.5. Ejercicio 1.............................................................................................14
4.6. Catalogo de Artículos (V.1) ..................................................................15
4.7. Catalogo de Artículos (V.2) ..................................................................16
4.8. Ejercicio 2.............................................................................................18
Desarrollo de Aplicaciones de Negocio
Tema: Estructuras de Control

1. Caso a Desarrollar
1.1. Descripción del Caso
Se trata de una tienda de artículos de cuero, y quiere incursionar en el negocio
vía Internet (B2C).
El objetivo es que los clientes tengan la opción de realizar sus pedidos, y luego
atender el pedido a domicilio.

1.2. Modelo de Datos
El modelo de datos es bastante sencillo, se trata de un modelo académico, y de
lo que se trata es que sea claro, y su implementación sea relativamente sencilla.

Docente
Email

Eric Gustavo Coronel Castillo
gcoronel@viabcp.com

Página 2 de 18
Desarrollo de Aplicaciones de Negocio
Tema: Estructuras de Control

2. Creación de la base de datos
2.1. Carpeta de Trabajo
Desempaquete el archivo CuerosNet.ZIP en la unidad C:, se creará la carpeta
C:CuerosNet, dentro de esta carpeta se encuentra el archivo
CuerosNetCreaDB.SQL con el script para crear la base de datos, y una carpeta
Fotos donde tenemos las fotos de los productos que se comercializaran.

2.2. Creación de la Base de Datos
1. Ejecute el comando cmd desde la ventana Ejecutar para abrir la consola de
comandos.
2. Ahora debe ubicarse en la carpeta C:mysqlbin.
C:...> cd mysqlbin
C:mysqlbin>

3. Ejecutamos el script de la base de datos.
C:mysqlbin>mysql -u root < c:cuerosnetcuerosnetcreadb.sql
C:mysqlbin>

4. Cargamos el Shell de MySQL.
C:mysqlbin> mysql -u root
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 115 to server version: 4.0.20a-nt
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql>

5. Ahora verifiquemos que se ha creado la base de datos.
mysql> show databases;
+-----------+
| Database |
+-----------+
| cuerosnet |
| mysql
|
| test
|
+-----------+
3 rows in set (0.00 sec)

Docente
Email

Eric Gustavo Coronel Castillo
gcoronel@viabcp.com

Página 3 de 18
Desarrollo de Aplicaciones de Negocio
Tema: Estructuras de Control
6. Verifiquemos las tablas.
mysql> use cuerosnet;
Database changed
mysql> show tables;
+---------------------+
| Tables_in_cuerosnet |
+---------------------+
| cliente
|
| control
|
| detalle
|
| pedido
|
| articulo
|
+---------------------+
5 rows in set (0.00 sec)

7. Consultemos el contenido de las tablas.
mysql> select * from cliente;
mysql> select * from articulo;
mysql> select * from control;

Docente
Email

Eric Gustavo Coronel Castillo
gcoronel@viabcp.com

Página 4 de 18
Desarrollo de Aplicaciones de Negocio
Tema: Estructuras de Control

3. MySQL Query Browser
Se trata de una herramienta muy interesante, permite ejecutar instrucciones
SQL, y cuenta con un IDE bastante amigable y con muchas opciones.

Visite http://dev.mysql.com/downloads/ para bajar esta y otras herramientas.

Docente
Email

Eric Gustavo Coronel Castillo
gcoronel@viabcp.com

Página 5 de 18
Desarrollo de Aplicaciones de Negocio
Tema: Estructuras de Control

4. Consultas
4.1. Archivos Comunes
Utilizaremos dos archivos comunes, un archivo de estilos y una librería de
funciones, ambos pueden mejorarse según las necesidades que se presenten.
Programa: egcc.css
BODY
{
background-color: #F2F2F2;
font-family: Arial, Helvetica, sans-serif;
font-size: 1em;
line-height: 2em;
color: #336699;
margin-top: 0.1em;
margin-right: 0.1em;
margin-bottom: 0.1em;
margin-left: 0.1em
}
H3
{

}
H4
{

}
TD
{

font-family: Arial, Helvetica, sans-serif;
font-size: 1.15em;
background-color: #006666;
color: #DCDCDC

font-family: Arial, Helvetica, sans-serif;
font-size: 1em;
color: blue

font-family: Helvetica, Arial, sans-serif;
font-size: 0.8em;
COLOR: #0000A0;
BACKGROUND-COLOR: #DFDFDF
}
TH
{

}

Docente
Email

font-family: Helvetica, Arial, sans-serif;
font-size: 1.0em;
COLOR: white;
BACKGROUND-COLOR: #000000

Eric Gustavo Coronel Castillo
gcoronel@viabcp.com

Página 6 de 18
Desarrollo de Aplicaciones de Negocio
Tema: Estructuras de Control
Programa: egcc.php

<?php
function fn_connect( $bd, &$msg){
$cn=mysql_connect("localhost","root","");
if(!$cn){
$msg = "Error en la conexión";
return 0;
}
$n = mysql_select_db($bd,$cn);
if(!$n){
$msg = "BD no existe";
return 0;
}
return $cn;
}
function fn_fin($msg,$ret){
if($msg){
echo "<h4>$msg</h4>";
}
if($ret){
echo '<p><input type="button" value="Retornar"
onClick="history.back()"></p>';
}
}
function say($cad){
echo $cad."n";
}
?>

Docente
Email

Eric Gustavo Coronel Castillo
gcoronel@viabcp.com

Página 7 de 18
Desarrollo de Aplicaciones de Negocio
Tema: Estructuras de Control

4.2. Listado de las bases de datos del servidor
Programa: php0701.php

<html>
<head>
<title>Listado de Bases de Datos</title>
<LINK rel="stylesheet" type="text/css" href="egcc.css">
</head>
<body>
<?php
$cn = mysql_connect("localhost", "root","");
if (!$cn){
die ("<h4>No se logro la conexión con el servidor</h4>");
}
$sql = "show databases";
$rs = mysql_query($sql,$cn);
$filas = mysql_num_rows($rs);
echo "<h3>Listado de Bases de Datos</h3>";
echo "<table>";
echo "<tr>";
echo "<th>Bases de Datos</th>";
echo "</tr>";
for($k=0;$k<$filas;$k++){
echo "<tr>";
echo "<td>".mysql_result($rs,$k,0)."</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($cn);
?>
</body>
</html>

Docente
Email

Eric Gustavo Coronel Castillo
gcoronel@viabcp.com

Página 8 de 18
Desarrollo de Aplicaciones de Negocio
Tema: Estructuras de Control

4.3. Listar las tablas de una base de datos
Programa: php0702.html

<html>
<head>
<title>Listar las tablas de una Base de Datos</title>
<LINK rel="stylesheet" type="text/css" href="egcc.css">
</head>
<body>
<h3>Listar las tablas de una Base de Datos</h3>
<form method="post" action="php0703.php">
<b>Base de Datos:</b><br>
<input type="text" name="bd">
<input type="submit" value="Consultar">
</form>
</body>
</html>

Programa: php0703.php

<html>
<head>
<title>Base de Datos: Tienda</title>
<LINK rel="stylesheet" type="text/css" href="egcc.css">
</head>
<body>
<?php
// verifica la variable
if(!isset($bd)){
die("<h4>Debe ingresar una base de datos.</h4>");
}
require ("egcc.php"); // carga la libreria
// realiza la conexion con el servidor
$cn = mysql_connect("localhost","root","");
if (!$cn){
die("<h4>No se logro la conexión con el servidor</h4>");
}
// selecciona la base de datos
echo "<h3>Base de Datos: $bd</h3>";
$n = mysql_select_db($bd,$cn);
if(!$n){
die("<h4>Base de Datos $bd no existe</h4>");
}
// Realiza la consulta
$sql = "show tables";
$rs = mysql_query($sql,$cn);

Docente
Email

Eric Gustavo Coronel Castillo
gcoronel@viabcp.com

Página 9 de 18
Desarrollo de Aplicaciones de Negocio
Tema: Estructuras de Control
// Imprimir el resultado
$filas = mysql_num_rows($rs);
echo "<table>";
echo "<tr>";
echo "<th>Tablas</th>";
echo "</tr>";
for($k=0;$k<$filas;$k++){
echo "<tr>";
echo "<td>".mysql_result($rs,$k,0)."</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($cn);
echo "</table>";

?>
</body>
</html>

Docente
Email

Eric Gustavo Coronel Castillo
gcoronel@viabcp.com

Página 10 de 18
Desarrollo de Aplicaciones de Negocio
Tema: Estructuras de Control

4.4. Consultar una tabla
Programa: php0704.html

<html>
<head>
<title>Consultar una tabla</title>
<LINK rel="stylesheet" type="text/css" href="egcc.css">
<style>
#caja1 {
position:absolute;
width: 160px;
left: 20px;
}
#caja2 {
position: absolute;
width: 100px;
left: 200px;
}
</style>
</head>
<body>
<h3>Consultar una tabla</h3>
<form method="post" action="php0705.php">
<div id="caja1">
<b>Base de Datos:</b><br>
<input type="text" name="bd" size="20" maxlength="20"><br>
<b>Tabla:</b><br>
<input type="text" name="tabla" size="20" maxlength="20">
</div>
<div id="caja2">
<br><br>
<input type="submit" value="Consultar">
</div>
</form>
</body>
</html>

Docente
Email

Eric Gustavo Coronel Castillo
gcoronel@viabcp.com

Página 11 de 18
Desarrollo de Aplicaciones de Negocio
Tema: Estructuras de Control
Programa: php0705.php

<html>
<head>
<title>Base de Datos: Tienda</title>
<LINK rel="stylesheet" type="text/css" href="egcc.css">
</head>
<body>
<?php
// carga la libreria
require ("egcc.php");
// verifica si existen las variables
if(!isset($bd) or !isset($tabla)){
fn_fin("<h4>Debe ingresar una BD y una tabla.</h4>",1);
die("");
}
// verifica que las variables no se encuentren vacias
if(empty($bd) or empty($tabla)){
fn_fin("<h4>Debe ingresar una BD y una tabla.</h4>",1);
die("");
}
// Realiza la conexion con el servidor
$cn = fn_connect($bd,$msg);
if (!$cn){
fn_fin("<h4>".$msg."</h4>",1);
die("");
}
echo "<h3>Base de Datos: $bd</h3>";
// Realiza la consulta
$sql = "Select * from ".$tabla;
$rs = mysql_query($sql,$cn);
if(!$rs){
fn_fin("<h4>Tabla no existe.</h4>",1);
die("");
}
// Datos de la Consulta
$filas = mysql_num_rows($rs);
$rec = mysql_fetch_array($rs,MYSQL_ASSOC);
$numcol = count($rec);
echo "<b>Tabla:</b> ".$tabla."<br>";
echo "<b>Filas:</b> ".$filas."<br>";
echo "<b>Columnas:</b> ".$numcol;
// Mostrar las columnas
echo "<table>";
echo "<tr>";
for ($k=0;$k<$numcol;$k++){
echo "<th>".mysql_field_name($rs,$k)."</th>";
}
echo "</tr>";

Docente
Email

Eric Gustavo Coronel Castillo
gcoronel@viabcp.com

Página 12 de 18
Desarrollo de Aplicaciones de Negocio
Tema: Estructuras de Control
// Mostrar los datos
for($k=0;$k<$filas;$k++){
echo "<tr>";
for($col=0;$col<$numcol;$col++){
echo "<td>".mysql_result($rs,$k,$col)."</td>";
}
echo "</tr>";
}
echo "</table>";
mysql_free_result($rs);
mysql_close($cn);
fn_fin("",1);
?>
</body>
</html>

Docente
Email

Eric Gustavo Coronel Castillo
gcoronel@viabcp.com

Página 13 de 18
Desarrollo de Aplicaciones de Negocio
Tema: Estructuras de Control

4.5. Ejercicio 1
Desarrollar un programa que permita consultar una tabla de la base de datos
CuerosNet, pero el usuario debe poder seleccionar la tabla.
Programa: php0706.php
El listado de las tablas lo debe leer
directamente de la base de datos.

Programa: php0707.php
Este programa recibe la tabla seleccionada en el formulario del programa
php0706.php, y muestra su contenido.

Docente
Email

Eric Gustavo Coronel Castillo
gcoronel@viabcp.com

Página 14 de 18
Desarrollo de Aplicaciones de Negocio
Tema: Estructuras de Control

4.6. Catalogo de Artículos (V.1)
Programa: php0708.php

<h3>Catalogo de Articulos</h3>
<?php
$cn = mysql_connect("localhost","root","");
mysql_select_db("CuerosNet",$cn);
$rs = mysql_query("select * from articulo",$cn);
while($row = mysql_fetch_array($rs,MYSQL_ASSOC)) {
echo "<img src='fotos/".$row["idarticulo"].".JPG'
width='162' height='183' border='1'><br>n";
echo "Codigo:".$row["idarticulo"]."<br>n";
echo "Nombre:".$row["nomarticulo"]."<br>n";
echo "Precio:".$row["precio"]."<br>n";
echo "Stock:".$row["stock"]."<br><br>n";
}
mysql_free_result($rs);
mysql_close($cn);
?>

Docente
Email

Eric Gustavo Coronel Castillo
gcoronel@viabcp.com

Página 15 de 18
Desarrollo de Aplicaciones de Negocio
Tema: Estructuras de Control

4.7. Catalogo de Artículos (V.2)
Programa: php0709.php

<HTML>
<HEAD>
<TITLE> Catalogo de Articulos </TITLE>
<LINK rel="stylesheet" type="text/css" href="egcc.css">
</HEAD>
<BODY>
<h3>Catalogo de Articulos</h3>
<?php
require "egcc.php";
$cn = fn_connect("cuerosnet",$msg);
$rs = mysql_query("select * from articulo",$cn);
say("<table>");
say("<tr>");
say("<th>Articulo</th>");
say("<th>Descripcion</th>");
say("</tr>");
while($row = mysql_fetch_array($rs,MYSQL_ASSOC)) {
say("<tr>");
say("<td>");
say("<img src='fotos/".$row["idarticulo"].".JPG' width='100'
height='100' border='1'><br>");
say("</td>");
say("<td>");
say("Codigo:".$row["idarticulo"]."<br>");;
say($row["nomarticulo"]."<br>");
say($row["descripcion"]."<br>");
say("Precio:".$row["precio"]."<br>");;
say("Stock:".$row["stock"]."<br>");
say("</td>");
say("</tr>n");
}
say("</table>");
mysql_free_result($rs);
mysql_close($cn);
?>
</BODY>
</HTML>

Docente
Email

Eric Gustavo Coronel Castillo
gcoronel@viabcp.com

Página 16 de 18
Desarrollo de Aplicaciones de Negocio
Tema: Estructuras de Control

Docente
Email

Eric Gustavo Coronel Castillo
gcoronel@viabcp.com

Página 17 de 18
Desarrollo de Aplicaciones de Negocio
Tema: Estructuras de Control

4.8. Ejercicio 2
Desarrollar una aplicación que permita ejecutar una consulta sobre la base de
datos CuerosNet, esta aplicación se compone de dos programas, como se
describe a continuación.
php0710.html
php0711.php

Docente
Email

Este programa muestra un formulario para ingresar la
instrucción SQL Select.
Esta programa recibe como parámetro la instrucción SQL
Select desde el programa php0710.html, y muestra su
resultado.

Eric Gustavo Coronel Castillo
gcoronel@viabcp.com

Página 18 de 18

Más contenido relacionado

PDF
Php08 mantenimiento tablas
PDF
Php05 funciones usuario
PDF
Php06 instalacion my_sql
PDF
Php02 fundamentos de php
PDF
Php03 variables externas
PDF
Php04 estructuras control
PPTX
Funciones
PDF
jQuery Mobile :: Cuadros de diálogo
Php08 mantenimiento tablas
Php05 funciones usuario
Php06 instalacion my_sql
Php02 fundamentos de php
Php03 variables externas
Php04 estructuras control
Funciones
jQuery Mobile :: Cuadros de diálogo

La actualidad más candente (20)

DOCX
Informe grupal f_arinango_ cuenca
PDF
Web de noticias en Ajax
KEY
Introducción a DJango
PDF
Creación de un servicio RESTful utilizando Java y WildFly -I PARTE-
PDF
Servlet Hola Mundo con Eclipse y Tomcat
PDF
Practica Seis Delphi
PDF
La api de salesforce
PDF
Guia N2 Proyectos Web Php
PDF
Base datosvisualc#express2008
PDF
Development Odoo Basic
KEY
Introducción a Flask
PPTX
Procedimientos_almacenados
PDF
Configurar entorno Android
PDF
Programacion PHP
PDF
Inf 14 (ventadellantas) rines
PDF
Web2py: Pensando en grande
DOCX
Servicios web
ODP
Desarrollo de aplicaciones web usando Catalyst y jQuery
PDF
4.Programación con PHP y MySQL
PDF
Informe grupal f_arinango_ cuenca
Web de noticias en Ajax
Introducción a DJango
Creación de un servicio RESTful utilizando Java y WildFly -I PARTE-
Servlet Hola Mundo con Eclipse y Tomcat
Practica Seis Delphi
La api de salesforce
Guia N2 Proyectos Web Php
Base datosvisualc#express2008
Development Odoo Basic
Introducción a Flask
Procedimientos_almacenados
Configurar entorno Android
Programacion PHP
Inf 14 (ventadellantas) rines
Web2py: Pensando en grande
Servicios web
Desarrollo de aplicaciones web usando Catalyst y jQuery
4.Programación con PHP y MySQL
Publicidad

Destacado (20)

PDF
Algoritmica i clase01 practica 1
PDF
Algoritmica i clase08 practica 8 solucionario
PDF
Algoritmica i clase00 introduccion
PDF
Algoritmica i clase05 practica 5 solucionario
PDF
Algoritmica i clase03 practica 3 solucionario
PDF
Silabo io1 2013 0
PDF
Algoritmica i clase07 practica 7
PDF
Algoritmica i clase04 practica 4 solucionario
PDF
Algoritmica i clase03 practica 3
PDF
Documento de Arquitectura
PDF
Unmsm fisi - problema de la asignación - io1 cl14 asignacion
PDF
Publicar en Facebook, Twitter, Linkedind y Google+ con Hoot Suite
PDF
Algoritmica i clase02 practica 2 solucionario
PDF
Algoritmica i clase04 practica 4
PDF
Practica2 bbdd er
PDF
7 p218162 unmsm-2012-2-dw-g1
PDF
6 t218162 promedios-sin-sustitutorio
PDF
Algoritmica i clase06 ejercicio apuntadores
PDF
Algoritmica i clase06 practica 6
PPTX
Arquitectura Web FISI UNMSM
Algoritmica i clase01 practica 1
Algoritmica i clase08 practica 8 solucionario
Algoritmica i clase00 introduccion
Algoritmica i clase05 practica 5 solucionario
Algoritmica i clase03 practica 3 solucionario
Silabo io1 2013 0
Algoritmica i clase07 practica 7
Algoritmica i clase04 practica 4 solucionario
Algoritmica i clase03 practica 3
Documento de Arquitectura
Unmsm fisi - problema de la asignación - io1 cl14 asignacion
Publicar en Facebook, Twitter, Linkedind y Google+ con Hoot Suite
Algoritmica i clase02 practica 2 solucionario
Algoritmica i clase04 practica 4
Practica2 bbdd er
7 p218162 unmsm-2012-2-dw-g1
6 t218162 promedios-sin-sustitutorio
Algoritmica i clase06 ejercicio apuntadores
Algoritmica i clase06 practica 6
Arquitectura Web FISI UNMSM
Publicidad

Similar a Php07 consultas bd (20)

DOCX
Guía Practica conexión BD 2021
PDF
Iniciación PHP 5. Ejercicios
PPSX
Sesion n°6
PDF
Rendimiento en magento
DOCX
PDF
Front-end: Diseñar webs rápidas, flexibles y potentes
PDF
Pysafet workflow and json library documentation
PDF
Informe_Base de datos
DOCX
Servicios web
PDF
Desarrollo Aplicaciones Zend Framework
PDF
PHP Tema 4 - Acceso a bases de datos MySQL en PHP
PPTX
Rendimiento en aplicaciones web con Symfony2
PDF
Dashboard cde pentaho
PDF
desarrolo de sitios web php y mysql
ODP
Escalabilidad - Apache y MySQL
PDF
Business Objects XI - Ejercicios
PDF
Crear Base de Datos en Oracle
PPT
Desarrollo de sitios web con php y my sql
PPTX
Miniproyecto bases de datos ii
PPTX
Miniproyecto bases de datos ii
Guía Practica conexión BD 2021
Iniciación PHP 5. Ejercicios
Sesion n°6
Rendimiento en magento
Front-end: Diseñar webs rápidas, flexibles y potentes
Pysafet workflow and json library documentation
Informe_Base de datos
Servicios web
Desarrollo Aplicaciones Zend Framework
PHP Tema 4 - Acceso a bases de datos MySQL en PHP
Rendimiento en aplicaciones web con Symfony2
Dashboard cde pentaho
desarrolo de sitios web php y mysql
Escalabilidad - Apache y MySQL
Business Objects XI - Ejercicios
Crear Base de Datos en Oracle
Desarrollo de sitios web con php y my sql
Miniproyecto bases de datos ii
Miniproyecto bases de datos ii

Más de Julio Pari (20)

PPTX
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
PDF
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
DOCX
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
DOCX
Indice General Tesis Sistemas UPC
PDF
Jelastic Enterprise
DOCX
Marketing Examen Parcial Profesor Osorio
DOCX
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
DOCX
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
DOCX
Práctica de Inventarios - Investigación Operativa II
PDF
Armas silenciosas para guerras tranquilas
PDF
UML Java
DOCX
Formato de presentación de Proyecto UNMSM FISI
DOCX
Cuento para nuestro hijo y nuestra hija
DOCX
Ingeniería de Software Examen Parcial
DOCX
Sistemas Distribuidos Examen Parcial
PDF
Php01 instalacion de apache y php en linux
PPT
Ingenieria de negocios cap9
PPT
Ingenieria de negocios cap8
PPT
Ingenieria de negocios cap7
PPT
Ingenieria de negocios cap6
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Indice General Tesis Sistemas UPC
Jelastic Enterprise
Marketing Examen Parcial Profesor Osorio
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
Práctica de Inventarios - Investigación Operativa II
Armas silenciosas para guerras tranquilas
UML Java
Formato de presentación de Proyecto UNMSM FISI
Cuento para nuestro hijo y nuestra hija
Ingeniería de Software Examen Parcial
Sistemas Distribuidos Examen Parcial
Php01 instalacion de apache y php en linux
Ingenieria de negocios cap9
Ingenieria de negocios cap8
Ingenieria de negocios cap7
Ingenieria de negocios cap6

Php07 consultas bd

  • 1. Operaciones de Consulta a una BD 1. 2. 3. 4. Caso a Desarrollar........................................................................................2 1.1. Descripción del Caso .............................................................................2 1.2. Modelo de Datos ....................................................................................2 Creación de la base de datos.......................................................................3 2.1. Carpeta de Trabajo ................................................................................3 2.2. Creación de la Base de Datos ...............................................................3 MySQL Query Browser.................................................................................5 Consultas......................................................................................................6 4.1. Archivos Comunes .................................................................................6 4.2. Listado de las bases de datos del servidor ............................................8 4.3. Listar las tablas de una base de datos...................................................9 4.4. Consultar una tabla ..............................................................................11 4.5. Ejercicio 1.............................................................................................14 4.6. Catalogo de Artículos (V.1) ..................................................................15 4.7. Catalogo de Artículos (V.2) ..................................................................16 4.8. Ejercicio 2.............................................................................................18
  • 2. Desarrollo de Aplicaciones de Negocio Tema: Estructuras de Control 1. Caso a Desarrollar 1.1. Descripción del Caso Se trata de una tienda de artículos de cuero, y quiere incursionar en el negocio vía Internet (B2C). El objetivo es que los clientes tengan la opción de realizar sus pedidos, y luego atender el pedido a domicilio. 1.2. Modelo de Datos El modelo de datos es bastante sencillo, se trata de un modelo académico, y de lo que se trata es que sea claro, y su implementación sea relativamente sencilla. Docente Email Eric Gustavo Coronel Castillo gcoronel@viabcp.com Página 2 de 18
  • 3. Desarrollo de Aplicaciones de Negocio Tema: Estructuras de Control 2. Creación de la base de datos 2.1. Carpeta de Trabajo Desempaquete el archivo CuerosNet.ZIP en la unidad C:, se creará la carpeta C:CuerosNet, dentro de esta carpeta se encuentra el archivo CuerosNetCreaDB.SQL con el script para crear la base de datos, y una carpeta Fotos donde tenemos las fotos de los productos que se comercializaran. 2.2. Creación de la Base de Datos 1. Ejecute el comando cmd desde la ventana Ejecutar para abrir la consola de comandos. 2. Ahora debe ubicarse en la carpeta C:mysqlbin. C:...> cd mysqlbin C:mysqlbin> 3. Ejecutamos el script de la base de datos. C:mysqlbin>mysql -u root < c:cuerosnetcuerosnetcreadb.sql C:mysqlbin> 4. Cargamos el Shell de MySQL. C:mysqlbin> mysql -u root Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 115 to server version: 4.0.20a-nt Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql> 5. Ahora verifiquemos que se ha creado la base de datos. mysql> show databases; +-----------+ | Database | +-----------+ | cuerosnet | | mysql | | test | +-----------+ 3 rows in set (0.00 sec) Docente Email Eric Gustavo Coronel Castillo gcoronel@viabcp.com Página 3 de 18
  • 4. Desarrollo de Aplicaciones de Negocio Tema: Estructuras de Control 6. Verifiquemos las tablas. mysql> use cuerosnet; Database changed mysql> show tables; +---------------------+ | Tables_in_cuerosnet | +---------------------+ | cliente | | control | | detalle | | pedido | | articulo | +---------------------+ 5 rows in set (0.00 sec) 7. Consultemos el contenido de las tablas. mysql> select * from cliente; mysql> select * from articulo; mysql> select * from control; Docente Email Eric Gustavo Coronel Castillo gcoronel@viabcp.com Página 4 de 18
  • 5. Desarrollo de Aplicaciones de Negocio Tema: Estructuras de Control 3. MySQL Query Browser Se trata de una herramienta muy interesante, permite ejecutar instrucciones SQL, y cuenta con un IDE bastante amigable y con muchas opciones. Visite http://dev.mysql.com/downloads/ para bajar esta y otras herramientas. Docente Email Eric Gustavo Coronel Castillo gcoronel@viabcp.com Página 5 de 18
  • 6. Desarrollo de Aplicaciones de Negocio Tema: Estructuras de Control 4. Consultas 4.1. Archivos Comunes Utilizaremos dos archivos comunes, un archivo de estilos y una librería de funciones, ambos pueden mejorarse según las necesidades que se presenten. Programa: egcc.css BODY { background-color: #F2F2F2; font-family: Arial, Helvetica, sans-serif; font-size: 1em; line-height: 2em; color: #336699; margin-top: 0.1em; margin-right: 0.1em; margin-bottom: 0.1em; margin-left: 0.1em } H3 { } H4 { } TD { font-family: Arial, Helvetica, sans-serif; font-size: 1.15em; background-color: #006666; color: #DCDCDC font-family: Arial, Helvetica, sans-serif; font-size: 1em; color: blue font-family: Helvetica, Arial, sans-serif; font-size: 0.8em; COLOR: #0000A0; BACKGROUND-COLOR: #DFDFDF } TH { } Docente Email font-family: Helvetica, Arial, sans-serif; font-size: 1.0em; COLOR: white; BACKGROUND-COLOR: #000000 Eric Gustavo Coronel Castillo gcoronel@viabcp.com Página 6 de 18
  • 7. Desarrollo de Aplicaciones de Negocio Tema: Estructuras de Control Programa: egcc.php <?php function fn_connect( $bd, &$msg){ $cn=mysql_connect("localhost","root",""); if(!$cn){ $msg = "Error en la conexión"; return 0; } $n = mysql_select_db($bd,$cn); if(!$n){ $msg = "BD no existe"; return 0; } return $cn; } function fn_fin($msg,$ret){ if($msg){ echo "<h4>$msg</h4>"; } if($ret){ echo '<p><input type="button" value="Retornar" onClick="history.back()"></p>'; } } function say($cad){ echo $cad."n"; } ?> Docente Email Eric Gustavo Coronel Castillo gcoronel@viabcp.com Página 7 de 18
  • 8. Desarrollo de Aplicaciones de Negocio Tema: Estructuras de Control 4.2. Listado de las bases de datos del servidor Programa: php0701.php <html> <head> <title>Listado de Bases de Datos</title> <LINK rel="stylesheet" type="text/css" href="egcc.css"> </head> <body> <?php $cn = mysql_connect("localhost", "root",""); if (!$cn){ die ("<h4>No se logro la conexión con el servidor</h4>"); } $sql = "show databases"; $rs = mysql_query($sql,$cn); $filas = mysql_num_rows($rs); echo "<h3>Listado de Bases de Datos</h3>"; echo "<table>"; echo "<tr>"; echo "<th>Bases de Datos</th>"; echo "</tr>"; for($k=0;$k<$filas;$k++){ echo "<tr>"; echo "<td>".mysql_result($rs,$k,0)."</td>"; echo "</tr>"; } echo "</table>"; mysql_close($cn); ?> </body> </html> Docente Email Eric Gustavo Coronel Castillo gcoronel@viabcp.com Página 8 de 18
  • 9. Desarrollo de Aplicaciones de Negocio Tema: Estructuras de Control 4.3. Listar las tablas de una base de datos Programa: php0702.html <html> <head> <title>Listar las tablas de una Base de Datos</title> <LINK rel="stylesheet" type="text/css" href="egcc.css"> </head> <body> <h3>Listar las tablas de una Base de Datos</h3> <form method="post" action="php0703.php"> <b>Base de Datos:</b><br> <input type="text" name="bd"> <input type="submit" value="Consultar"> </form> </body> </html> Programa: php0703.php <html> <head> <title>Base de Datos: Tienda</title> <LINK rel="stylesheet" type="text/css" href="egcc.css"> </head> <body> <?php // verifica la variable if(!isset($bd)){ die("<h4>Debe ingresar una base de datos.</h4>"); } require ("egcc.php"); // carga la libreria // realiza la conexion con el servidor $cn = mysql_connect("localhost","root",""); if (!$cn){ die("<h4>No se logro la conexión con el servidor</h4>"); } // selecciona la base de datos echo "<h3>Base de Datos: $bd</h3>"; $n = mysql_select_db($bd,$cn); if(!$n){ die("<h4>Base de Datos $bd no existe</h4>"); } // Realiza la consulta $sql = "show tables"; $rs = mysql_query($sql,$cn); Docente Email Eric Gustavo Coronel Castillo gcoronel@viabcp.com Página 9 de 18
  • 10. Desarrollo de Aplicaciones de Negocio Tema: Estructuras de Control // Imprimir el resultado $filas = mysql_num_rows($rs); echo "<table>"; echo "<tr>"; echo "<th>Tablas</th>"; echo "</tr>"; for($k=0;$k<$filas;$k++){ echo "<tr>"; echo "<td>".mysql_result($rs,$k,0)."</td>"; echo "</tr>"; } echo "</table>"; mysql_close($cn); echo "</table>"; ?> </body> </html> Docente Email Eric Gustavo Coronel Castillo gcoronel@viabcp.com Página 10 de 18
  • 11. Desarrollo de Aplicaciones de Negocio Tema: Estructuras de Control 4.4. Consultar una tabla Programa: php0704.html <html> <head> <title>Consultar una tabla</title> <LINK rel="stylesheet" type="text/css" href="egcc.css"> <style> #caja1 { position:absolute; width: 160px; left: 20px; } #caja2 { position: absolute; width: 100px; left: 200px; } </style> </head> <body> <h3>Consultar una tabla</h3> <form method="post" action="php0705.php"> <div id="caja1"> <b>Base de Datos:</b><br> <input type="text" name="bd" size="20" maxlength="20"><br> <b>Tabla:</b><br> <input type="text" name="tabla" size="20" maxlength="20"> </div> <div id="caja2"> <br><br> <input type="submit" value="Consultar"> </div> </form> </body> </html> Docente Email Eric Gustavo Coronel Castillo gcoronel@viabcp.com Página 11 de 18
  • 12. Desarrollo de Aplicaciones de Negocio Tema: Estructuras de Control Programa: php0705.php <html> <head> <title>Base de Datos: Tienda</title> <LINK rel="stylesheet" type="text/css" href="egcc.css"> </head> <body> <?php // carga la libreria require ("egcc.php"); // verifica si existen las variables if(!isset($bd) or !isset($tabla)){ fn_fin("<h4>Debe ingresar una BD y una tabla.</h4>",1); die(""); } // verifica que las variables no se encuentren vacias if(empty($bd) or empty($tabla)){ fn_fin("<h4>Debe ingresar una BD y una tabla.</h4>",1); die(""); } // Realiza la conexion con el servidor $cn = fn_connect($bd,$msg); if (!$cn){ fn_fin("<h4>".$msg."</h4>",1); die(""); } echo "<h3>Base de Datos: $bd</h3>"; // Realiza la consulta $sql = "Select * from ".$tabla; $rs = mysql_query($sql,$cn); if(!$rs){ fn_fin("<h4>Tabla no existe.</h4>",1); die(""); } // Datos de la Consulta $filas = mysql_num_rows($rs); $rec = mysql_fetch_array($rs,MYSQL_ASSOC); $numcol = count($rec); echo "<b>Tabla:</b> ".$tabla."<br>"; echo "<b>Filas:</b> ".$filas."<br>"; echo "<b>Columnas:</b> ".$numcol; // Mostrar las columnas echo "<table>"; echo "<tr>"; for ($k=0;$k<$numcol;$k++){ echo "<th>".mysql_field_name($rs,$k)."</th>"; } echo "</tr>"; Docente Email Eric Gustavo Coronel Castillo gcoronel@viabcp.com Página 12 de 18
  • 13. Desarrollo de Aplicaciones de Negocio Tema: Estructuras de Control // Mostrar los datos for($k=0;$k<$filas;$k++){ echo "<tr>"; for($col=0;$col<$numcol;$col++){ echo "<td>".mysql_result($rs,$k,$col)."</td>"; } echo "</tr>"; } echo "</table>"; mysql_free_result($rs); mysql_close($cn); fn_fin("",1); ?> </body> </html> Docente Email Eric Gustavo Coronel Castillo gcoronel@viabcp.com Página 13 de 18
  • 14. Desarrollo de Aplicaciones de Negocio Tema: Estructuras de Control 4.5. Ejercicio 1 Desarrollar un programa que permita consultar una tabla de la base de datos CuerosNet, pero el usuario debe poder seleccionar la tabla. Programa: php0706.php El listado de las tablas lo debe leer directamente de la base de datos. Programa: php0707.php Este programa recibe la tabla seleccionada en el formulario del programa php0706.php, y muestra su contenido. Docente Email Eric Gustavo Coronel Castillo gcoronel@viabcp.com Página 14 de 18
  • 15. Desarrollo de Aplicaciones de Negocio Tema: Estructuras de Control 4.6. Catalogo de Artículos (V.1) Programa: php0708.php <h3>Catalogo de Articulos</h3> <?php $cn = mysql_connect("localhost","root",""); mysql_select_db("CuerosNet",$cn); $rs = mysql_query("select * from articulo",$cn); while($row = mysql_fetch_array($rs,MYSQL_ASSOC)) { echo "<img src='fotos/".$row["idarticulo"].".JPG' width='162' height='183' border='1'><br>n"; echo "Codigo:".$row["idarticulo"]."<br>n"; echo "Nombre:".$row["nomarticulo"]."<br>n"; echo "Precio:".$row["precio"]."<br>n"; echo "Stock:".$row["stock"]."<br><br>n"; } mysql_free_result($rs); mysql_close($cn); ?> Docente Email Eric Gustavo Coronel Castillo gcoronel@viabcp.com Página 15 de 18
  • 16. Desarrollo de Aplicaciones de Negocio Tema: Estructuras de Control 4.7. Catalogo de Artículos (V.2) Programa: php0709.php <HTML> <HEAD> <TITLE> Catalogo de Articulos </TITLE> <LINK rel="stylesheet" type="text/css" href="egcc.css"> </HEAD> <BODY> <h3>Catalogo de Articulos</h3> <?php require "egcc.php"; $cn = fn_connect("cuerosnet",$msg); $rs = mysql_query("select * from articulo",$cn); say("<table>"); say("<tr>"); say("<th>Articulo</th>"); say("<th>Descripcion</th>"); say("</tr>"); while($row = mysql_fetch_array($rs,MYSQL_ASSOC)) { say("<tr>"); say("<td>"); say("<img src='fotos/".$row["idarticulo"].".JPG' width='100' height='100' border='1'><br>"); say("</td>"); say("<td>"); say("Codigo:".$row["idarticulo"]."<br>");; say($row["nomarticulo"]."<br>"); say($row["descripcion"]."<br>"); say("Precio:".$row["precio"]."<br>");; say("Stock:".$row["stock"]."<br>"); say("</td>"); say("</tr>n"); } say("</table>"); mysql_free_result($rs); mysql_close($cn); ?> </BODY> </HTML> Docente Email Eric Gustavo Coronel Castillo gcoronel@viabcp.com Página 16 de 18
  • 17. Desarrollo de Aplicaciones de Negocio Tema: Estructuras de Control Docente Email Eric Gustavo Coronel Castillo gcoronel@viabcp.com Página 17 de 18
  • 18. Desarrollo de Aplicaciones de Negocio Tema: Estructuras de Control 4.8. Ejercicio 2 Desarrollar una aplicación que permita ejecutar una consulta sobre la base de datos CuerosNet, esta aplicación se compone de dos programas, como se describe a continuación. php0710.html php0711.php Docente Email Este programa muestra un formulario para ingresar la instrucción SQL Select. Esta programa recibe como parámetro la instrucción SQL Select desde el programa php0710.html, y muestra su resultado. Eric Gustavo Coronel Castillo gcoronel@viabcp.com Página 18 de 18