Está en la página 1de 24

Php – mysql 2007 – I

EJEMPLOS DE PHP Y MYSQL

1.- Muestra la Fecha del Sistema.


<!-- Cap01/ejemplo1.php -->
<HTML>
<HEAD>
<TITLE>Primer script PHP</TITLE>
</HEAD>
<BODY>
<P ALIGN="CENTER">Primer script PHP</P>
<?php
$hoy = date("d-m-Y");
echo "La fecha actual es: $hoy.\n";
?>
</BODY>
</HTML>

2.- Envio de Variables de un Formulario a otro.

Paso 1: Creando el Formulario HTML


<!-- formulario.html -->
<HTML>
<HEAD>
<TITLE>Formulario de Recepción de Pedidos</TITLE>
</HEAD>
<BODY>
<H1 ALIGN="CENTER">Recepción de Pedidos</H1>
<FORM ACTION="./procesar1.php">
Nombre Usuario:
<INPUT TYPE="text" NAME="NombreUsuario" SIZE="20"><BR>
Listado de libros disponibles:
<UL>
<LI>Libro A - (Precio = 10) - Unidades:
<INPUT TYPE="text" NAME="UnidadesA" SIZE="2">
</LI>
<LI>Libro B - (Precio = 12) - Unidades:
<INPUT TYPE="text" NAME="UnidadesB" SIZE="2">
</LI>
</UL>
<P ALIGN="CENTER"><INPUT TYPE="submit" VALUE="Enviar"></P>
</FORM>
</BODY>
</HTML>

Paso 2: Recepción de Pedidos:

<!-- Cap01/procesar1.php -->


<HTML>
<HEAD>
<TITLE>Datos Introducidos</TITLE>
</HEAD>
<BODY>
<H1 ALIGN="CENTER">Datos Introducidos</H1>
<?php
echo "Nombre = <B> $NombreUsuario </B> <BR>";
echo "Número Unidades Libro A = <B> $UnidadesA </B><BR>";
echo "Número Unidades Libro B = <B> $UnidadesB </B><BR>";
?>
</BODY>
</HTML>

Desarrollo de portales 1 Ing. Alberto Moreno C.


Php – mysql 2007 – I

3.- Una página en una ( Formulario de Procesamiento de Pedidos)

<!-- Cap01/form_y_proceso.php -->


<HTML>
<HEAD>
<TITLE>Procesamiento de Pedidos</TITLE>
</HEAD>
<BODY>
<?php
// Se comprueba que no exista la variable $NombreUsuario
if (!isset($NombreUsuario))
{
?>
<H1 ALIGN="CENTER">Formulario de Recepción de Pedidos</H1>
<FORM ACTION=""> <!-- Esta página se procesa a sí misma -->
Nombre Usuario:
<INPUT TYPE="text" NAME="NombreUsuario" SIZE="20"><BR>
Listado de libros disponibles:
<UL>
<LI>Libro A - (Precio = 10) - Unidades:
<INPUT TYPE="text" NAME="UnidadesA" SIZE="2">
</LI>
<LI>Libro B - (Precio = 12) - Unidades:
<INPUT TYPE="text" NAME="UnidadesB" SIZE="2">
</LI>
</UL>
<P ALIGN="CENTER"><INPUT TYPE="submit" VALUE="Enviar"></P>
</FORM>
<?php
}
// La variable $NombreUsuario está asignada -> se procesan los datos
else
{
// Primero calculamos los totales
$SubtotalA = $UnidadesA * 10;
$SubtotalB = $UnidadesB * 12;
$TotalPedido = $SubtotalA + $SubtotalB;

// Ahora mostramos los resultados


echo '<H1 ALIGN="CENTER">Importe del Pedido</H1>';
echo "Nombre = <B> $NombreUsuario </B>\n <PRE>\n";
echo "Libro A: <B> $UnidadesA </B> uds. a 10 = <B> $SubtotalA </B> \n";
echo "Libro B: <B> $UnidadesB </B> uds. a 12 = <B> $SubtotalB </B> \n";
echo "------------------------- \n ";
echo "<B> TOTALES </B> <B> $TotalPedido </B> </PRE> \n";

Desarrollo de portales 2 Ing. Alberto Moreno C.


Php – mysql 2007 – I

Array
(
[0] => standard
[1] => bcmath
[2] => calendar
[3] => ctype
[4] => com
[5] => ftp
[6] => mysql
[7] => odbc
[8] => overload
[9] => pcre
[10] => session
[11] => tokenizer
[12] => xml
[13] => wddx
[14] => zlib
[15] => apache
)

?>
</BODY>
</HTML>

4.- Listado de Extensiones ( list_extensiones.php )

<!-- Cap02/list_extensiones.php -->


<HTML>
<HEAD>
<TITLE>PHP: Listado Extensiones Activas</TITLE>
</HEAD>
<BODY>
<PRE>
<?php
// print_r permite hacer "volcados" de variables
print_r(get_loaded_extensions());
?>
</PRE>
</BODY>
</HTML>

5.- Prueba de Interprete de PHP.


<!-- Cap02/prueba.php -->
<HTML>
<HEAD>
<TITLE>PHP: Prueba Intérprete</TITLE>
</HEAD>
<BODY BGCOLOR="#9999CC">
<?php
// generamos el URI de la imagen
$uri_imagen = basename($PHP_SELF) . '?=' . php_logo_guid();
// generamos el texto alternativo
$servidor = 'Servidor: ' . $SERVER_SOFTWARE;
// Incluimos la imagen realizando una nueva petición al intérprete
echo '<IMG SRC="', $uri_imagen, '" BORDER="0" ALT="', $servidor, '">';
?>

Desarrollo de portales 3 Ing. Alberto Moreno C.


Php – mysql 2007 – I

<CENTER>
<H4><strong>BIENVENIDO A MI SISTEMA</strong></H4>
Nombre:<input type="text" name=txtname>
</CENTER>
</BODY>
</HTML>

6.- Uso de Bucles


<!-- Cap03/break.php -->
<HTML>
<HEAD><TITLE>Bucles</TITLE></HEAD>
<BODY>
<CENTER>
<H3> Salida de bucles</H3>
</CENTER>
<?php
$i=1;
while ($i <= 10)
{
if ($i%2 == 0)
echo "$i es par <BR>\n";
else
echo "$i es impar <BR>\n";
if ($i == 5)
{
break;
echo "esto no se ejecuta\n";
}
$i++;
} // del while
echo "<BR>Primera instrucción después del bucle";
?>
</BODY>
</HTML>

7.- Conversión de tipos en PHP.


<!-- Cap03/casting.php -->
<HTML>
<HEAD><TITLE>Conversión de tipos en PHP</TITLE></HEAD>
<BODY>
<?php
$UnNumero = 3;
$OtroNumero = (int)($UnNumero / 2);
echo "El otro número es $OtroNumero<BR>\n";
$UnArray = (array)$UnNumero;
echo "El primer elemento del array es ", $UnArray[0], "<BR>\n";
$UnObjeto = (object)$UnNumero;
echo "El atributo scalar del objeto es ", $UnObjeto->scalar;
?>
</BODY>
</HTML>

8.- Uso de Comentarios.


<!-- Cap03/comentario.php -->
<HTML>
<HEAD><TITLE>Primer Programa PHP</TITLE></HEAD>
<BODY>
Esto es HTML<BR>
<?php
// Esto es un comentario de una línea

Desarrollo de portales 4 Ing. Alberto Moreno C.


Php – mysql 2007 – I

echo "Esto es una instrucción PHP <BR>\n";


echo "Esto es otra instrucción"; //Otro comentario
/* Esto sería un
comentario de varias líneas */
?>
</BODY>
</HTML>

9.- Uso de Contantes.


<!-- Cap03/constantes.php -->
<HTML>
<HEAD><TITLE>Constantes de PHP</TITLE></HEAD>
<BODY>
<?php
echo "Ejecuto la versión de PHP: ",PHP_VERSION,"<BR>\n";
echo "El sistema operativo es: ",PHP_OS,"<BR>\n";
echo "Estoy en el fichero <B>",__FILE__," línea ",__LINE__,"</B>";
?>
</BODY>
</HTML>

10.- Salidas de Bucles.


<!-- Cap03/continue.php -->
<HTML>
<HEAD><TITLE>Bucles</TITLE></HEAD>
<BODY>
<CENTER>
<H3> Salida de bucles</H3>
</CENTER>
<?php
$i=0;
while ($i < 10)
{
$i++;
if (($i == 6)||($i == 7)||($i == 8))
continue;
if ($i%2 == 0)
echo "$i es par <BR>\n";
else
echo "$i es impar <BR>\n";
} // del while
echo "Primera instrucción después del bucle\n";
?>
</BODY>
</HTML>

11.- Conversión de Tipos en PHP.


<!-- Cap03/conversion.php -->
<HTML>
<HEAD><TITLE>Conversión de tipos en PHP</TITLE></HEAD>
<BODY>
<?php
$UnaCadena = "10";
$OtraCadena = "5cinco";
$UnNumero = 25;
$Resultado = $UnaCadena + $UnNumero;
echo "Cadena 'sumada' con número: $Resultado <BR>\n";
$Resultado = $UnaCadena + $OtraCadena;
echo "Cadenas 'sumadas': $Resultado <BR>\n";
?>

Desarrollo de portales 5 Ing. Alberto Moreno C.


Php – mysql 2007 – I

</BODY>
</HTML>

12.- Segunda conversión con Instrucciones.


<!-- Cap03/conversion2.php -->
<HTML>
<HEAD><TITLE>Conversión de tipos en PHP</TITLE></HEAD>
<BODY>
<?php
$UnaCadena = "65";
$UnNumero = 25;
$Res = settype($UnaCadena, 'integer');
echo "Conversión de cadena a número: ", gettype($UnaCadena);
echo "<BR>\n";
$Res = settype($UnNumero, 'string');
echo "Conversión de número a cadena: ", gettype($UnNumero), "\n";
?>
</BODY>
</HTML>

13.- Conversión de Decimal a Binario. Usando variables.


<!-- Cap03/dowhile.php -->
<HTML>
<HEAD><TITLE>Bucles</TITLE></HEAD>
<BODY>
<CENTER>
<H3> Conversión de decimal a binario</H3>
<?php
$NumeroDecimal = 13;
echo "El número decimal es: <B>$NumeroDecimal</B><BR>\n";
$NumeroBinario = '';
do {
$NumeroBinario = $NumeroDecimal % 2 . $NumeroBinario;
echo "Resultado intermedio: <B>'$NumeroBinario'</B><BR>\n";
$NumeroDecimal = (int)($NumeroDecimal/2);
} while ($NumeroDecimal > 0);
echo "Número en binario resultante <B>$NumeroBinario</B><BR>\n";
?>
</CENTER>
</BODY>
</HTML>

14.- Llamando el Factorial de un Numero con la instrucción IF ELSE


<?php
function factorial($n)
{
if ($n == 0)
{ // condición de parada
echo "Paro cuando \$n vale: ", $n, "<BR>\n";
return 1;
}
else
{
$valor = $n * factorial($n - 1);
echo "El valor devuelto por la llamada recursiva
cuando \$n vale: $n es $valor <BR>\n";
return $valor;
}
}

Desarrollo de portales 6 Ing. Alberto Moreno C.


Php – mysql 2007 – I

$valor = factorial(7);
echo "<HR>\n";
echo "El factorial de 7 es $valor<BR>\n";
?>

15.- Cálculo de la Media Aritmética


<!-- Cap03/fichero1.php -->
<CENTER>
<H1>C&aacute;lculo de la media</H1>
<HR>
<?php
function listar($matriz)
{
echo "<TABLE BORDER=3>\n";
for ($i = 0; $i < count($matriz); $i++)
{
echo "<TR>\n";
echo "<TD>Elemento $i</TD>\n";
echo "<TD>$matriz[$i]</TD>\n";
echo "</TR>\n";
}
echo "</TABLE>\n";
}
function media ()
{
$limite =func_num_args();
$acumulado = 0;
echo "<TABLE>\n";
echo "<CAPTION ALIGN=TOP>Numero de argumentos: $limite</CAPTION>\n";
for ($i = 0; $i < $limite; $i++)
{
echo "<TR>\n";
echo "<TD ALIGN=CENTER>Par&aacute;metro $i</TD>\n";
echo "<TD align=center>",func_get_arg($i),"</TD>\n";
echo "</TR>\n";
$acumulado += func_get_arg($i);
}
echo "</TABLE>\n";
echo "<H2>Valor de la media: ",$acumulado/$limite," </H2>\n";
listar (func_get_args());
}
media(12, 13, 15);
?>
</CENTER>
<?php
return 39;
?>

16.- Tabla de Multiplicar


<!-- Cap03/fichero2.php -->
<CENTER>
<?php
function escribir_tabla_del_13()
{
echo "<TABLE>";
echo "<caption align=top>Tabla del 13</caption>";
for ($i = 1; $i < 11; $i++)
{
echo "<TR>";
echo "<TD align=center>13</TD>";

Desarrollo de portales 7 Ing. Alberto Moreno C.


Php – mysql 2007 – I

echo "<TD align=center>*</TD>";


echo "<TD align=center>$i</TD>";
echo "<TD>=</TD>";
echo "<TD align=center>",13*$i,"</TD>";
echo "</TR>";
}
echo "</TABLE>";
}
escribir_tabla_del_13();
?>
</CENTER>
<?php
return 23;
?>

17.- Uso de Inclusión de archivos con la funcion require()

<!-- Cap03/variables.php -->


<?php
// Referencia a las variables globales
global $email;

// inicialización de variables
$nombre = 'Agustín';
$direccion = 'Ctra. Valencia Km.7';
$telefono = '91234567';
$email = 'ayague@midireccion.es';

define ('LENGUAJE', 'PHP');


define ('PAIS', 'España');

?>

La pagina que la llamara .


<!-- Cap03/fichero3.php -->
<?php
// inclusión de fichero de variables
// Aquí se comportan como variables locales
function funcion1()
{
require ('variables.php');
echo "Dentro de la función<br>\n";
echo "Nombre: $nombre<br>\n";
echo "Dirección: $direccion<br>\n";
echo "Teléfono: $telefono<br>\n";
echo "email: $email<br>\n";
}
funcion1();
echo "Fuera de la función<br>\n";
echo "Nombre: $nombre<br>\n";
echo "Dirección: $direccion<br>\n";
echo "Teléfono: $telefono<br>\n";
echo "email: $email<br>\n";
return 19;
?>

18.- Uso de la función for


<!-- Cap03/for1.php -->
<HTML>
<HEAD><TITLE>Bucles</TITLE></HEAD>

Desarrollo de portales 8 Ing. Alberto Moreno C.


Php – mysql 2007 – I

<BODY>
<?php
for ($i = 1; $i <= 5; $i++)
echo "El número es: $i<BR>";
?>
</BODY>
</HTML>

19.- Uso de For 2


<!-- Cap03/for2.php -->
<HTML>
<HEAD><TITLE>Estructuras</TITLE></HEAD>
<BODY>
<?php
for ($i =1; $i <=10; $i++)
{
echo "El número es: $i<Br>";
}
?>
</BODY>
</HTML>

20.- Uso del Bucle foreach


<!-- Cap03/foreach1.php -->
<HTML>
<HEAD><TITLE>Bucles</TITLE></HEAD>
<BODY>
<CENTER>
<H3>Lista de autores</H3>
</CENTER>
<?php
$Nombres[0]='Abraham';
$Nombres[1]='Agustín';
$Nombres[2]='Javier';
echo "<B>Bucle clásico</B><Br>\n";
for ($i = 0; $i < 3; $i++)
{
echo "Un autor de este libro se llama:<B> $Nombres[$i]</B>";
echo "<BR>\n";
}
echo "<B>Bucle foreach</B><BR>\n";
foreach ($Nombres as $autor)
echo "Un autor de este libro se llama:<B> $autor</B><BR>\n";
?>
</BODY>
</HTML>

21.- Uso del Bucle Foreach 2


<!-- Cap03/foreach2.php -->
<HTML>
<HEAD><TITLE>Bucles</TITLE></HEAD>
<BODY>
<CENTER>
<H3>Lista de autores</H3>
</CENTER>
<?php
$Nombres = array ('primero' => 'Javier',
'segundo' => 'Jorge',
'tercero' => 'Santiago');
echo "<B>Bucle foreach</B><BR>\n";

Desarrollo de portales 9 Ing. Alberto Moreno C.


Php – mysql 2007 – I

foreach ($Nombres as $clave => $autor)


{
echo "Un autor de este libro se llama:<B> $autor</B>\n";
echo " y su clave es <B>$clave</B>.<BR>\n";
}
?>
</BODY>
</HTML>

22.- Uso de require_once llamando paginas alternas con funciones predefinidas

<!-- Cap03/llamado2.php -->


<?php
echo "Cargo el fichero llamado2.php<BR>\n";
$variable2 = "Yagüe ";
?>

<!-- Cap03/llamado.php -->


<?php
echo "Cargo el fichero llamado.php<BR>\n";
$variable1 = "Agustín ";
function muestra()
{
echo "Hola desde muestra<BR>\n";
}
?>

<!-- Cap03/llamante_once.php -->


<?php
require_once( "llamado.php" );
require_once( "llamado2.php" );
echo "La variable1 vale: $variable1<br>\n";
echo "La variable2 vale: $variable2<br>\n";
muestra( );
echo "Intento volver a cargar llamado2.php<br>\n";
$variable2 = "Panadero ";
echo "La variable2 vale antes de la segunda llamada: $variable2<br>\n";
require_once( "llamado2.php" );
echo "La variable2 vale después de la segunda llamada: $variable2<br>\n";
echo "Intento volver a cargar llamado.php<br>\n";
echo "La variable1 vale antes de la segunda llamada: $variable1<br>\n";
require_once( "llamado.php" );
echo "La variable1 vale después de la segunda llamada: $variable1<br>\n";
echo "Vuelve a llamar a muestra<br>\n";
muestra( );
?>

23.- Uso de arreglos .


<!-- Cap03/matriz1.php -->
<HTML>
<HEAD><TITLE>Matrices en PHP</TITLE></HEAD>
<BODY>
<?php
$MiArray[0] = 'Hola';
$MiArray[1] = 25;
echo "Posición cero: $MiArray[0] <BR>";
echo "Posición uno: $MiArray[1] <BR>";
?>
</BODY>
</HTML>

Desarrollo de portales 10 Ing. Alberto Moreno C.


Php – mysql 2007 – I

24.- Llamando a una funcion de una funcion ( Calculando la Media Aritmetica)


<!-- Cap03/media.php -->
<HTML>
<HEAD>
<TITLE>Cálculo de la media</TITLE>
</HEAD>
<BODY>
<CENTER>
<H1>Cálculo de la media</H1>
<HR>
<?php
function listar($matriz)
{
echo "<TABLE BORDER=3>\n";
for ($i = 0; $i < count($matriz); $i++)
{
echo "<TR>\n";
echo "<TD>Elemento $i</TD>\n";
echo "<TD>$matriz[$i]</TD>\n";
echo "</TR>\n";
}
echo "</TABLE>\n";
}
function media ()
{
$limite = func_num_args();
$acumulado = 0;
echo "<TABLE WIDTH=175>\n";
echo "<CAPTION ALIGN=TOP>Numero de argumentos: $limite
</CAPTION>\n";
for ($i = 0; $i < $limite; $i++)
{
echo "<TR>\n";
echo "<TD ALIGN=CENTER>Parámetro $i</TD>\n";
echo "<TD align=center>", func_get_arg($i), "</TD>\n";
echo "</TR>\n";
$acumulado += func_get_arg($i);
}
echo "</TABLE>\n";
listar(func_get_args());
return $acumulado/$limite;
}
$valor_media = media(12, 13, 15);
echo "<H2>Valor de la media: ", $valor_media, " </H2>\n";
?>
</CENTER>
</BODY>
</HTML>

25.- Usando la BASE DE DATOS LibroPHP


Script.
CREATE TABLE Departamentos
( CodDpto CHAR(2) Not Null,
Descripcion CHAR(10) Not Null,
Situacion CHAR(15),
PRIMARY KEY (CodDpto) );

CREATE TABLE Empleados


( CodEmp CHAR(2) Not Null,

Desarrollo de portales 11 Ing. Alberto Moreno C.


Php – mysql 2007 – I

Nombre CHAR(10) Not Null,


Categoria CHAR(15),
Sueldo INTEGER,
CodDpto CHAR(2),
PRIMARY KEY (CodEmp),
FOREIGN KEY (CodDpto)
REFERENCES Departamentos
ON UPDATE SET NULL
ON DELETE SET NULL );

26.- Mostrando los atributos.


<!--capitulo 11/campos.php-->
<?php

$conex = mysql_pconnect('localhost', 'root', '');


mysql_select_db("LibroPHP");
$Latrib = mysql_list_fields("LibroPHP", "Empleados");
$Num_Atrib = mysql_num_fields($Latrib);
echo "Numero de atributos: $Num_Atrib<BR>\n";
for ($i=0;$i<$Num_Atrib;$i++)
{
echo "<B>Nombre:</B> ".mysql_field_name($Latrib, $i)." ";
echo "<B>Tipo:</B> ".mysql_field_type($Latrib, $i)." ";
echo "<B>Long.: </B>".mysql_field_len($Latrib, $i)." ";
echo "<B>Características: </B>";
$Car = mysql_field_flags($Latrib, $i);
if (!$Car)
echo "Ninguna";
else
echo $Car;
echo "<BR>\n";
}

mysql_free_result($Latrib);
mysql_close($conex);
?>

27.- Conexión con Mysql , Información del gestor MySQL, Recorrido de Cursores

<!--Cap11/cursor.php-->
<HTML>
<HEAD><TITLE>Conexión con MySql</TITLE></HEAD>

<BODY link="#0000ff" vlink="#0000ff">


<CENTER><FONT COLOR='blue'>
<H1> Información del gestor MySQL </H1></FONT>
<H3> Recorrido de Cursores</H3></CENTER>

<?php
//Establecimiento de la conexión
$conex = mysql_connect("localhost", "root", "root")
or die("NO se pudo realizar la conexión");
// Selección de la base de datos
mysql_select_db("LibroPHP", $conex);
//Preparación y ejecución de la consulta
$cons = "SELECT * FROM Empleados";
$resultado = mysql_query($cons,$conex);
//Obtención del número de filas del resultado
$Num_filas = mysql_num_rows($resultado);
echo "<Br>Número de filas en el resultado: $Num_filas<BR>\n";

Desarrollo de portales 12 Ing. Alberto Moreno C.


Php – mysql 2007 – I

//Obtención del número de atributos


$Num_campos = mysql_num_fields($resultado);

//Recorrido del cursor de fila en fila


while ($fila = mysql_fetch_row($resultado))
{
//Recorrido de los atributos de una fila
for ($i = 0; $i < $Num_campos; $i++)
echo $fila[$i] . " ";
echo "<BR>\n";
}

// Liberamos los recursos de las consultas


mysql_free_result($resultado);
// Se cierra la conexion
mysql_close($conex);

?>

<BR>
<HR>
</BODY>
</HTML>

28.- Selección de Cursor


<?php
//Establecimiento de la conexión
$conex = mysql_connect("localhost","root","root")
or die("NO se pudo realizar la conexión");
// Selección de la base de datos
mysql_select_db("LibroPHP", $conex);
//Preparación y ejecución de la consulta
$cons = "Select * from Empleados";
$resultado = mysql_query($cons,$conex);
//Obtención del número de filas del resultado
$Num_filas = mysql_num_rows($resultado);
echo "<Br>Núm. de filas en el resultado: $Num_filas<BR>\n";
//Obtención del número de atributos
$Num_campos = mysql_num_fields($resultado);

//Recorrido del cursor


while ($Objeto_Fila = mysql_fetch_object($resultado))
{
echo $Objeto_Fila->CodEmp." ";
echo $Objeto_Fila->Nombre." " ;
echo $Objeto_Fila->Categoria." ";
echo $Objeto_Fila->Sueldo." ";
echo $Objeto_Fila->CodDpto." ";
echo "<BR>\n";
}

// Liberamos los recursos de las consultas


mysql_free_result($resultado);
// Se cierra la conexion
mysql_close($conex);
?>

29.- Mostrando todas las Tablas y sus campos y sus parámetros. dicmysql.php
<!--Cap11/dicmysql.php -->
<HTML>

Desarrollo de portales 13 Ing. Alberto Moreno C.


Php – mysql 2007 – I

<HEAD><TITLE>Diccionario de Datos de MySql</TITLE></HEAD>

<BODY link="#0000ff" vlink="#0000ff">


<CENTER><FONT COLOR='blue'>
<H1> Información del gestor MySQL </H1></Font>
<H3> Acceso al diccionario de datos</H3></CENTER>

<CENTER><BR><BR>
<TABLE BORDER=1 WIDTH=60%>
<TR><TD ALIGN='center'><FONT COLOR='blue'>Base de Datos</FONT></TD>
<TD ALIGN='center'><FONT COLOR='blue'>Tabla</FONT></TD>
<TD ALIGN='center'><FONT COLOR='blue'>Campo</FONT></TD></TR>
<TR><TD ALIGN='center'>

<?php
$conex = mysql_connect("localhost", "root", "");
// Primero información de las bases de datos
echo "<FORM NAME='datos' ACTION='dicmysql.php' METHOD='POST'>\n";

// La primera vez que se ejecuta, no se ha elegido


// base de datos ni tabla ni campo. Deben ser cero.
if (!isset ($sbd))
$sbd = 0;
if (!isset ($stab))
$stab = 0;
if (!isset ($sfield))
$sfield = 0;

//Se obtienen todas las bases de datos disponibles


$bds = mysql_list_dbs();

$Num_bds = mysql_num_rows($bds);
echo "<SELECT NAME='sbd'
onChange = 'document.datos.stab.selectedIndex = 0;
document.datos.sfield.selectedIndex = 0;
document.datos.submit()'>";
echo "\n";
// Se forman todas las opciones del select
for ($i = 0; $i < $Num_bds; $i++)
{
$nombre_base[$i] = mysql_tablename($bds, $i);
echo "<OPTION VALUE='$i'";
// Si el índice es $sbd es que era el seleccionado
if ($i == $sbd)
echo " SELECTED";
echo ">".$nombre_base[$i]."</OPTION>\n";
echo "\n";
}
echo "</SELECT></TD>\n";

//Ahora información de las tablas para la base de datos elegida


// Se selecciona la base de datos
mysql_select_db($nombre_base[$sbd]);
$bdSelecc = $nombre_base[$sbd];
// Se obtienen las tablas de la base de datos
$tabs = mysql_list_tables($nombre_base[$sbd]);
$Num_tabs = mysql_num_rows($tabs);
// Si hay tablas, se generan el resto
if ($Num_tabs)
{

Desarrollo de portales 14 Ing. Alberto Moreno C.


Php – mysql 2007 – I

echo "<TD ALIGN = 'center'>";


echo "<SELECT NAME = 'stab'
onChange='document.datos.sfield.selectedIndex = 0;
document.datos.submit()'>\n";
// Se forman todas las opciones del select
for ($i = 0; $i < $Num_tabs; $i++)
{
$nombre_tabla[$i] = mysql_tablename($tabs, $i);
echo "<OPTION VALUE='$i'";
// Si el índice es $stab es que era el seleccionado
if ($i == $stab)
echo " SELECTED";
echo ">".$nombre_tabla[$i]."</OPTION>\n";
}
echo "</SELECT>";
echo "</TD>\n";

//Ahora información de los atributos para la tabla elegida


$tabSelecc = $nombre_tabla[$stab];
$Latrib = mysql_list_fields($bdSelecc, $tabSelecc);
$Num_Atrib = mysql_num_fields($Latrib);
echo "<TD ALIGN = 'center'>";
echo "<SELECT NAME = 'sfield'
onChange='document.datos.submit()'>\n";

for ($i = 0; $i < $Num_Atrib; $i++)


{
$nombre_campo = mysql_field_name($Latrib, $i);
echo "<OPTION VALUE = '$i'";
if ($i == $sfield)
echo " SELECTED";
echo ">$nombre_campo</OPTION>\n";
}
echo "</SELECT></TD>\n";
echo "</TR></TABLE>";

// Ahora se muestran las características del campo elegido


echo "<HR><BR>";
echo "<TABLE BORDER=1 WIDTH=40%>";
// Se genera una consulta para poder ver las propiedades
// de los atributos
$cadena = "SELECT * FROM " . $nombre_tabla[$stab];
$cons_aux = mysql_query($cadena);
// Se puede tratar el campo como un objeto
// para acceder a sus propiedades
$prop = mysql_fetch_field($cons_aux, $sfield);
echo "<TR><TD><FONT COLOR=blue>Longitud Máxima: </FONT></TD>";
echo "<TD><FONT COLOR='red'>" . $prop->max_length;
echo "</FONT></TD></TR>\n";
echo "<TR><TD><FONT COLOR = 'blue'>Nulos: </FONT></TD>";
echo "<TD><FONT COLOR = 'red'>";
if ($prop->not_null)
echo "NO";
else
echo "SI";
echo "</FONT></TD></TR>\n";
echo "<TR><TD><FONT COLOR=blue>Clave Primaria: </FONT></TD>";
echo "<TD><FONT color = 'red'>";
if ($prop->primary_key)

Desarrollo de portales 15 Ing. Alberto Moreno C.


Php – mysql 2007 – I

echo "SI";
else
echo "NO";
echo "</FONT></TD></TR>\n";
echo "<TR><TD><FONT COLOR='blue'>Tipo: </FONT></TD>";
echo "<TD><FONT COLOR='red'>" . $prop->type;
echo "</FONT></TD></TR>\n";
echo "</TABLE>";

} // de si tiene tablas la bd
else {
?>
<TD>
<SELECT NAME = 'stab' onChange = 'document.datos.submit()'>
<OPTION VALUE = '0' SELECTED> &nbsp </OPTION>
</SELECT>
</TD> <TD>
<SELECT NAME = 'sfield' onChange = 'document.datos.submit()'>
<OPTION VALUE = '0' SELECTED> &nbsp </OPTION>
</SELECT>
</TD> <BR></TR>
</TABLE>
<HR><BR><BR>
<FONT SIZE=+1 COLOR=red>
La base de datos No tiene tablas definidas</FONT>
<?
} // de generar los select aunque no tengan tablas

// Liberamos los recursos de las consultas


mysql_free_result($bds);
if ($Num_tabs)
{
mysql_free_result($tabs);
mysql_free_result($Latrib);
mysql_free_result($cons_aux);
}
echo "</CENTER></FORM>\n";
// Se cierra la conexion
mysql_close($conex);

?>

<BR>
<HR>
</BODY>
</HTML>

Resultado:

Desarrollo de portales 16 Ing. Alberto Moreno C.


Php – mysql 2007 – I

30.- Usando Errores.


<!--Cap11/error.php-->
<?php
//Establecimiento de la conexión
$conex = mysql_connect("localhost", "root", "root")
or die("NO se pudo realizar la conexión");
// Selección de la base de datos
//mysql_select_db("Base de Datos");
echo mysql_errno() . ": " . mysql_error() . "<BR>\n";
mysql_select_db("LibroPHP");
$cons = "SELECT Apellidos FROM Empleados";
$res = mysql_query($cons, $conex);
echo mysql_errno() . ": " . mysql_error();
// Se cierra la conexion
mysql_close($conex);
?>

31.- Crear una Base de Datos Biblioteca


<!-- Cap14/BibliotecaJavascript/crearbiblioteca.php -->
<HTML>
<HEAD>
<TITLE>Creación de la BD de funciones JavaScript</TITLE>
</HEAD>
<BODY>
<?php
// Nos conectamos con el gestor de BD Mysql
if (!($conexion = mysql_connect("localhost", "root","root")))
die("No se puede conectar");
// Creamos una BD nueva y la seleccionamos para trabajar con ella
if (!mysql_create_db("bibliotecajavascript"))
die("no se puede crear la base de datos");
if (!mysql_select_db("bibliotecajavascript"))
die("no se puede seleccionar la base de datos");
// Creamos la tabla FUNCIONES con 2 campos:NOMBRE Y CODIGO
if (!mysql_query("CREATE TABLE FUNCIONES
(NOMBRE CHAR(100) NOT NULL,

Desarrollo de portales 17 Ing. Alberto Moreno C.


Php – mysql 2007 – I

CODIGO BLOB,
PRIMARY KEY(NOMBRE))"))
{
echo mysql_error();
die("error al crear la base de datos");
}
echo "BASE DE DATOS DE BIBLIOTECA JAVASCRIPT CREADA";
?>
</BODY>
</HTML>

32.- Llamando a Funciones archivos INC.

<?php
/* ///////////////////////////////////////////////////
* <!-- Cap14/BibliotecaJavascript/obtenfuncion.inc -->
* ///////////////////////////////////////////////// */
function obtener_funcion($nombre, $indentacion)
{
// Conexión y selección de la base de datos de la biblioteca
if (!($conexion = mysql_connect("localhost", "root","root")))
die("No se puede conectar");
if (!mysql_select_db("bibliotecajavascript"))
die("no se puede seleccionar la base de datos");
if (!($cursor = mysql_query("SELECT *
FROM FUNCIONES
WHERE NOMBRE='$nombre'")))
{
echo mysql_error();
die("ERROR: SELECT no válido");
}
$fila = mysql_fetch_row($cursor);
echo "\n";
$blancos = " ";
$blancos = str_repeat($blancos, $indentacion);
$fila[1] = ereg_replace("[\n]", "\n" . $blancos, $fila[1]);
echo "$blancos$fila[1]\n\n";
}
?>

Ejemplo Completo de un Mantenimiento


Trabajamos con el formulario index.html (default.htm) dentro de la carpeta s1669 o
s1671, base datos s1669db o s1671db, tabla cliente. Primeramente activar los
servcios del apache (httpd) y el servicio del mysqld.

[root@benigno root]# service httpd restart


[root@benigno root]# service mysqld restart
[root@benigno root]# cd /var/www/html/s1669
sidet >gedit index.htm
<html>
<head><title>Taller de Sistemas II Formulario de Ingreso Ing. Benigno García Cruz
</title>

Desarrollo de portales 18 Ing. Alberto Moreno C.


Php – mysql 2007 – I

<head>
<body>
<div align=“center”>
<h1><font color=green>Insertar Registro de Clientes</font></h1>
<form method=“post” action=“insertar.php”>
Código_Cliente<br>
<input type=“text” name=“c_codcli”><br>
Nombre_Cliente<br>
<input type=”text” name=”c_nomcli”><br>
Dirección_Cliente<br>
<input type=“text” name=“c_dircli”><br>
Teléfono_Cliente<br>
<input type=“text” name=“c_telcli”><br>
<font size=4 color=red>
<p><input type=“Submit” value=“Insertar”><input type=”Reset”></font>
</form><img src=“067231842.jpg”>
</div>
</body>
</html>
Grabar como index.htm
Desde un Browser Netscape o Mozilla
http://localhost/index.htm
Ingrese los Datos
// Insertar un Registro
<html>
<head><title> insertar.php </title>
<head>
<body><?php //Conexion con la Base de Datos
mysql_connect(“localhost”,”root”,””);
mysql_db_query(“s1669db”, “insert into cliente(c_codcli,c_nomcli,c_dircli,c_telcli)
values(‘$c_codcli’,’$c_nomcli’,’$c_dircli’,’$c_telcli’)”);
?>
<h1>div align=”center”><font color = red>Registro Insertado</font></div></h1>
<div align=”center”><a href=”lectura.php”><font size = 6 color = green>Visualizar el
Contenido de la base</font>
</a></div><br><br>

Desarrollo de portales 19 Ing. Alberto Moreno C.


Php – mysql 2007 – I

<center><img src=”continue.gif”></center>
</body>
</html>
// Lectura de Datos
<html>
<head><title>Lectura de Datos </title>
</head>
<body>
<h1><div align= center><font color=red><b>Lectura de la Tabla Clientes
</b></font></div></h1>
<?
// Conexión a la Base de Datos
mysql_connect(“localhost”,”root”,””);
// Ejecución la Sentencia SQL
$result=mysql_db_query(“s1669db”, “select * from cliente”);
?>
<table align=”center”>
<tr><th><font size=4 color=blue><b>Código</b></font></th>
<th><font size=4 color=blue><b>Nombre</b></font></th>
<th><font size=4 color=blue><b>Dirección</b></font></th>
<th><font size=4 color=blue><b>Teléfono</b></font></th></tr>
<?
// Mostraremos los registros
while($row=mysql_fetch_array($result))
{
echo’<tr><td>’.$row[“c_codcli”].’</td>’;
echo’<td>’.$row[“c_nomcli”].’</td>’;
echo’<td>’.$row[“c_dircli”].’</td>’;
echo’<td>’.$row[“c_telcli”].’</td></tr>’;
}
mysql_free_result($result)
?>
</table>
<div align =”center”>
<a href=”index.htm”><font size =4 color=green><b>Añadir un Nuevo
Registo</b></font></a><br>

Desarrollo de portales 20 Ing. Alberto Moreno C.


Php – mysql 2007 – I

<a href=”actualizar1.php”><font size=4 color=green><b>Actualizar un Registro


Existente</b></font></a><br>
<a href=”borrar1.php”><font size=4 color=green><b>Borrar un
Registro</b></font></a><br>
</div>
</body>
</html>
// Actualizar un Registro
<html>
<head>
</title>Actualizar1.php Ing. Benigno Garcia Cruz</title>
</head>
<body>
<div align=”center”>
<h1><font color=red><b>Actualizar Un Registro</b></font></h1><br>
<?
//Conexión a la Base de Datos
mysql_connect(“localhost”,”root”,””);
echo’<form method=”Post” action=”actualizar2.php”>Código<br>’;
//Creamos la Sentencia SQL y la ejecutamos
$ssql=”select c_codcli from cliente order by c_codcli”;
$result=mysql_db_query(“s1669db”,$ssql);
echo’<select name=”c_codcli”>’;
//Se Genera el Menú Desplegable
while($row=mysql_fetch_array($result))
{
echo<option>’.$row[“c_codcli”];
}
?>
</select><br>
Nombre<br>
<input type=”text” name=”c_nomcli”><br>
Dirección<br><input type=”text” name=”c_dircli”><br>
Teléfono<br>
<input type=”text” name=”c_telcli”><br>
<input type=”Submit” value=”Actualizar”>
</form>

Desarrollo de portales 21 Ing. Alberto Moreno C.


Php – mysql 2007 – I

</div>
</body>
</html>
//Actualizar2
<html>
<head></title>Actualizar2.php</title>
</head>
<body>
<?
//Conexión a la Base de Datos
mysql_connect(“localhost”,”root”,””);
//Creamos la Sentencia SQL y se ejecuta
$ssql=”Update cliente set c_nomcli=’$c_nomcli’,
c_dircli=’$c_dircli’,
c_telcli=’$c_telcli’
where c_codcli=’$c_codcli’”;
mysql_db_query(“s1669db”,$ssql);
?>
<h1><div align=”center><font color=blue><b>Registro
Actualizado</b></font></div></h1>
<div align=”center”><a href=”lectura.php”><font color=blue><b>Visualizar El Contenido
de la BD’s</b></a></div>
</body>
</html>
// Borrar un Registro
<html>
<head></title>Borrar1.php </title>
</head>
<body>
<div align=”center”>
<h1><font size=6 color=yellow><b><Borrar un Registro</b></font></h1><br>
<?
//Conexión con la Base de Datos
mysql_connect(“localhost”,”root”,””);
echo’<form method=”post” action=”borrar2.php”><font size=5
color=red><b>Codigo</b></font><br>’;
//Creamos la Sentencia SQL y la ejecutamos

Desarrollo de portales 22 Ing. Alberto Moreno C.


Php – mysql 2007 – I

ssql=”select c_codcli from cliente order by c_codcli”;


$result=mysql_db_query(“s1669db”,$ssql);
echo’<select name=”c_codcli”>’;
//mostraremos los registros en forma de menú desplegable
while($row=mysql_fetch_array($result))
{
echo’<option>’.$row[“c_codcli”];
}
mysql_free_result($result)
?>
</select><br><font size=5 color=blue>
<input type=”submit” value=”Borrar”></font>
</form></div>
</body>
</html>
//Borrar 2
<html>
<head>
</title>Borrar2.php </title>
</head>
<body>
<?
//Conexión con la Base de Datos
mysql_connect(“localhost”,”root”,””);
//Creamos la Sentencia SQL y la ejecutamos
$ssql=”delete from cliente where c_codcli=’$c_codcli’”;
mysql_db_query(“s1669db”,$ssql);
?>
<h1><div align=”center><font color=yellow><b>Registro
Borrado</b></font></div></h1>
<div align=”center”><a href=”lectura.php”>
<font color=orange><b>Visualizar El Contenido de la BD’s</b></a></div>
</body>
</html>
Todos estos archivos (index.htm, insertar.php, lectura.php, actualizar1.php,
actualizar2.php, borrar1.php, borrar2.php) , están grabados en la carpeta s1669
/var/www/html/s1669/

Desarrollo de portales 23 Ing. Alberto Moreno C.


Php – mysql 2007 – I

Desde un Navegador (Netscape o Mozilla,otros)


http://localhost/index.htm
Tienen que estar configurado el apache (Servidor web), los servicios del mysql y el
Proxy para que tenga permiso y los servicios activos como se indicaron al principio (IP,
puerto 8080).

Desarrollo de portales 24 Ing. Alberto Moreno C.