Documente Academic
Documente Profesional
Documente Cultură
Unidad I.
Introducción a PHP
Qué es PHP
PHP es lo que llamamos un lenguaje de programación
del lado del servidor, esto significa que el código se
interpreta en el servidor y no en el ordenador del
usuario.
Vamos a ver un ejemplo sencillo de código escrito en php para que nos sea más
fácil de comprender:
<html>
<head>
<title>Prueba</title>
</head>
<body>
<?
<html>
<head>
<title>Prueba</title>
</head>
<body>
Hola mundo
</body>
</html>
Vemos que el código php esta delimitado por las etiquetas <? y ?>, aunque
también puede usarse <?php en lugar de <?. Otra característica del php es que
las variables se identifican con el signo del dólar ($) y que cada instrucción debe
finalizarse con un punto y coma (;).
Todo esto se puede instalar por separado, o se puede hacer con paquetes que
instalan y configuran PHP, Apache y MySQL. Aunque en este capítulo enseñaré a
instalar el XAMPP, existen otros como el WAMP o el easyPHP.
El XAMPP
Una vez bajado el ejecutable, lo abrimos y vemos que nos pregunta por el idioma
en que queremos realizar la instalación (hay 11, uno de ellos el español).
Proceso de instalación.
XAMPP Control Panel. Tan solo por tener activado el Apache, puedes acceder al
http://localhost, donde podrás ver si se ha instalado correctamente el servidor
local.
Separación de instrucciones
Comentarios en PHP
Para que en futuras revisiones a tu código por tu parte y sobretodo por parte de
otros programadores este código sea inteligible para la mente humana, es una
buena costumbre comentar lo que se esta haciendo en PHP pero en palabras.
Los comentarios que soporta PHP són los de C, C++ y los del shell de Unix, asi
podemos usar // y /* */ para comentarios y comentarios multilinea
respectivamente como haríamos en C:
<?
echo 'Esto se ve';
// esto no se ve
echo 'esto tambien se ve';
/* esto tampoco
se ve */
?>
Como vemos, PHP interpreta como comentario desde el primer /* al primer */ sin
tener en cuenta que hay otro */, esto nos producirá un error asi que habrá que
tener cuidado.
Variables en PHP
Una variable es un nombre que contiene unos determinados datos, ya sean de
texto o numéricos, y en php tienen la peculiaridad de ir precedidas por el signo del
dolar ($).
<?
$miVariable = 'Hola ';
$miVariable2 = 33;
// Imprimimos Hola 33
echo $miVariable.$miVariable2;
?>
Como vemos, asignamos valor a una variable con el operador de igualdad (=), y
concatenamos con el operador punto (.).
<?
$nombreVariable = "miVariable";
$$nombreVariable = "Hola";
// Imprimimos Hola
echo $miVariable;
?>
Para que una variable sea accesible desde cualquier parte de nuestro script php,
la definiremos cómo global de la siguiente manera:
<?
global $miVariableGlobal = 'Hola';
?>
Variables predefinidas
Para obtener una lista de todas estas variables predefinidas se puede utilizar la
funcion phinfo().
De todas estas variables, algunas se crean dependiendo del servidor que se esté
utilizando y otras son propias de PHP. Si se tratara de un servidor Apache, la lista
de variables es:
• GATEWAY_INTERFACE:
• SERVER_NAME
• SERVER_SOFTWARE
• SERVER_PROTOCOL
• REQUEST_METHOD
• QUERY_STRING
• DOCUMENT_ROOT
• HTTP_ACCEPT
• HTTP_ACCEPT_CHARSET
• HTTP_ENCODING
• HTTP_ACCEPT_LANGUAJE
• HTTP_CONNECTION
• HTTP_HOST
• HTTP_REFERER
• HTTP_USER_AGENT
• REMOTE_ADDR
• REMOTE_PORT
• SCRIPT_FILENAME
• SERVER_ADMIN
• SERVER_PORT
• SERVER_SIGNATURE
• PATH_TANSLATED
• SCRIPT_NAME
• REQUEST_URL
• argv
• argc
• PHP_SELF
• HTTP_COOKIE_VARS
• HTTP_GET_VARS
• HTTP_POST_VARS
Par añadir valores a una cookie se utilizan los corchetes, [], por ejemplo:
$count++;
setCookie("count", $count;, time()+3600);
SetCookie("Visita[$count]", "$valor",time()+3600);
Constantes
Las constantes en PHP tienen que ser definidas por la función define() y además
no pueden ser redefinidas con otro valor.
Ejemplo:
<?php
define("CONSTANTE", "hello world.");
echo CONSTANTE;
?>
También podemos hacer notar que para disponer comentarios de línea debemos
utilizar dos caracteres //
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$dia = 24; //Se declara una variable de tipo integer.
$sueldo = 758.43; //Se declara una variable de tipo
double.
$nombre = "juan"; //Se declara una variable de tipo
string.
$exite = true; //Se declara una variable boolean.
echo "Variable entera:";
echo $dia;
echo "<br>";
echo "Variable double:";
echo $sueldo;
echo "<br>";
echo "Variable string:";
echo $nombre;
echo "<br>";
echo "Variable boolean:";
echo $exite;
?>
</body>
</html>
Hemos utilizado un comando echo para mostrar los mensajes, otro el contenido
de variables y finalmente otro para imprimir marcas HTML. Este proceso puede
acortarse un poco pero para que sea más claro inicialmente tomaremos el camino
largo de hacer la impresión de un dato con cada comando echo.
Boolean – Lógico
Puede contener 2 valores True o False. Al usarlo cómo entero su valor puede ser 1
( True ) o 0 ( False ). Un ejemplo típico de lógico es el resultado de una
comparación:
<?php
$var1= 1 != 2 ; // $var1 es true
?>
Integer – Entero
<?php
$var1 = 027; // Notación octal ( 23 en decimal )
$var1 = 23; // Notación decimal
$var1 = 0x17; // Notación hexadecimal ( 23 en decimal )
?>
Float – Decimal
<?php // Así si
$var1 = "pongo \ delante de las \" pero no de las ' ";
$var1 = 'pongo \ delante de las \' pero no de las " ';
$var1 = "pongo \\";
// Así no
$var1 = "pongo " donde quiero"; // Mal ! "
$var1 = "pongo \"; // Mal ! \
?>
Las cadenas con comillas dobles, a parte de \" y \' tienen otros caracteres
especiales:
<?php // Así si
$var1 = "php";
$var2 = Array ( "php","html" ); // [0]=>php, [1]=>html
$var3 = "aprendo $var1"; // aprendo php
$var3 = "aprendo {$var2[0]}"; // aprendo php
// Así no
$var3 = "aprendo $var2[0]"; // aprendo Array
?>
Arrays
Los Arrays en PHP se pueden utlizar tanto como Arrays indexados o como Arrays
asociativos. Los Arrays de una sola dirección, pueden ser tanto escalares como
asociativos. En realidad no existen ninguna diferencia entre ellos. Las funciones
que se utilizan para crear Arrays de este tipo son list() o array() . En el caso de
que no se especifique el indice en un array, el elemento que se asigna se añade al
final.
$a[]="hola"
La instrucción anterior añade el string hola al final del array 'a'. Los arrays pueden
ser ordenados utilizando las siguientes funciones: asort(), arsort(), ksort(),
rsort(), sort(), uasort(), usort() y uksort(). Otras funciones para el manejo de
arrays son: count(), next(), prev() y each().
(Nota: hay que tener cuidado con la sintaxis de los arrays multidimensionales
asociativos incluidos dentro de una cadena).
$a=array(
"manzana" => array("color" => "rojo", "tacto" =>
"suave"),
"naranja" => array("color" => "naranja", "tacto" =>
"rugoso"),
"platano" => array("color" => "amarillo", "tacto" =>
"suave")
);
Objetos
Para inicializar un objeto se utiliza el método new , y para acceder a cada uno de
sus métodos se utiliza el operador -> .
Expresiones y operadores
En PHP una expresión es cualquier cosa que pueda contener un valor. Las
expresiones más simples son las variables y las constantes y otras más
complicadas serán las funciones, puesto que cada función devuelve un valor al ser
invocada, es decir, contiene un valor, por lo tanto, es una expresión.
Todas las expresiones en PHP son exactamente igual que en C. Los operadors
abreviados, los incrementos, etc, son exactamente iguales. Incluso existen otros
operadores adicionales como el operador "." que concatena valores de variables, o
el operador "===" denominado operador de identidad que devolverá verdadero si
las expresiones a ambos lados del operador contienen el mismo valor y a la vez
son del mismo tipo. Por último, el operador "@" sirve para el control de errores.
Para poder ver como funciona el operador @, veamos un ejemplo:
<?php
$res = @mysql_query("select nombre from clientes")
or die ("Error en la selección, '$php_errormsg'");
?>
PHP mantiene también los operadores "'" que sirven para ejecutar un comando del
sistema tal y como hace la función system() por ejemplo.
Las diferencias con C son los operadores de referencia, & y *, puesto que las
operaciones por referencias no existen en PHP·, aunque si son posibles en PHP4, y
que en PHP existen dos operadores and y dos operadores or que son: 'and', '&&' y
'or', '||' respectivamente, que se diferencian en la precedencia de cada uno.
Tipos de operadores
PHP dispone de una gran cantidad de operadores que podríamos organizar en las
siguientes categorías:
• Operadores de Aritmética
• Operadores de Asignación
• Operadores Bit a Bit
• Operadores de Comparación
• Operadores de Control de Errores
• Operadores de ejecución
• Operadores de Incremento
• Operadores de Lógica
• Operadores de Cadena
• Operadores de Matrices
• Operadores de Tipo
Operadores Aritméticos
Los operadores de aritmética són los operadores básicos para el trabajo con
números, nos permiten sumar dos valores, restarlos, dividirlos... Se trata de
operadores binarios en todos los casos ya que requieren dos operandos para
funcionar correctamente.
<?
$a = 1 + 2; // $a toma valor 3
?>
Ejemplo de Módulo:
<?
$a = 3 % 2; // $a toma valor 1
?>
Operadores de Asignación
Los operadores de asignación, són aquellos que nos permiten modificar el valor de
una variable, el operador de asignación básico es el 'es igual a' (=), que da el
valor que lo sigue a la variable que lo precede:
<?
$miVariable = 'suValor';
?>
<?
$a = 1;
$a += 1; // Sumamos y asignamos
$a = $a + 1; // Operacion equivalente
?>
En este ejemplo vemos que podemos poner el operador de suma seguido del de
asignacion para incrementar el valor de la variable, asimismo podriamos usar el
operador de concatenacion (.=), el de multiplicacion (*=)... consiguiendo efectos
similares.
Operadores de Comparación
<?
echo ($variable == 1) ? 'Vale 1' : 'Vale mas de uno';
?>
Para evitar que se muestre en página un determinado error que se puede producir
eventualmente en una linea PHP dispone del operador de control de errores.
Este operador que se representa con el signo arroba (@), permite evitar que se
imprima en la página de resultado un error prodcido por la ejecución del código
PHP en una línea determinada:
<?php
echo 'Hola mundo';
@ funcionquenoexiste (); // Esto debería producir un
error
?>
Operadores de Incremento
Estos operadores son operadores unarios por lo que solo reciben un operando al
que incrementan o decrementan según el operador. Estos operadores pueden
ponerse delante del operando, en ese caso la operación devolverá el valor una vez
operado, o después, caso en el que la operación devolverá el valor antes de
operar:
<?
$variable = 2;
echo $variable++; // Imprime 2 y luego incrementa
echo ++$variable; // incrementa y luego imprime 4
?>
Este tipo de operador se utiliza mucho para el tercer parámetro de un bucle for.
Operadores de Lógica
Los operadores de Lógica nos permiten crear expresiones mas complejas para
evaluar nuestras estructuras de control, permitiendonos enlazar varias
operaciones de comparación con los diferentes operadores booleanos.
<?
echo ((1 == 1)&&(2 != 2)); // Devuelve 0
?>
Existe otro operador lógico, en este caso unario, que es el operador No (!), este
operador delante de un valor binario, devuelve el valor contrario (0 si es 1 y 1 si
es 0):
<?
echo !((1 == 1)&&(2 != 2)); // Devuelve 1
?>
Operadores de Cadena
<?
$texto = 'hola ' . 'mundo';
echo $texto;
?>
<?
$texto = 'hola ';
$texto .= 'mundo';
echo $texto;
?>
Este operador nos será de gran utilidad para almacenar una gran cantidad de
datos en una misma variable de manera limpia, veamos un ejemplo:
<?
$html = "<html>\n";
$html .= "<head>\n";
$html .= "<title>Mi página</title>\n";
$html .= "</head>\n";
$html .= "<body>\n";
$html .= "Este es el contenido de mi\n";
$html .= "preciosa página\n";
$html .= "</body>\n";
$html .= "</html>\n";
echo $html;
?>
Como vemos, hemos almacenado una página HTML en la variable $html de forma
limpia y bien presentada para finalmente imprimir el resultado.
Unidad II.
Estructuras de Control en PHP
Cada tipo de estructuras tiene diversas variantes para ser utilizadas en distintos
casos. Si uno tiene mucha práctica con otros lenguajes de programación las
estructuras a manejar son muy fáciles de comprender, en caso que haya
empezado a programar hace poco será conveniente que elija y practique las
formas más simples.
Estructura Condicional If
Cuando se pretende que el programa, una vez llegado a un cierto punto, tome un
camino concreto en determinados casos y otro diferente si las condiciones de
ejecución difieren, se utiliza el conjunto de instrucciones:
Estructura If Simple
if (Condición)
{
Instrucción 1;
Instrucción 2;
}
if (Condición)
{
Instrucción 1;
Instrucción 2;
}
else
{
Instrucción A;
Instrucción B;
}
Estructuras If Anidadas
En los casos en que las condiciones sean varias, se pueden utilizar los if de un
modo denominado anidado o anillado, como se indica de la manera siguiente:
if (Condicion 1)
{
Instrucción 1;
Instrucción 2;
}
else
{
if (Condicion 2)
{
Instrucción A;
Instrucción B;
}
else
{
Instrucción X;
Instrucción Z;
}
}
if (Condicion 1)
{
Instrucción 1;
Instrucción 2;
}
elseif (Condicion 2)
{
Instrucción A;
Instrucción B;
}
else
{
Instrucción X;
Instrucción Z;
}
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$valor=rand(1,10);
echo "El valor sorteado es $valor<br>";
if ($valor<=5)
{
echo "Es menor o igual a 5";
}
else
{
echo "Es mayor a 5";
}
?>
</body>
</html>
$valor=rand(1,10);
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$valor=rand(1,100);
echo "El valor sorteado es $valor<br>";
if ($valor<=9)
{
echo "Tiene un dígito";
}
else
{
if ($valor<100)
{
echo "Tiene 2 dígitos";
}
else
{
echo "Tiene 3 dígitos";
}
}
?>
</body>
</html>
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$valor=100;//rand(1,100);
echo "El valor sorteado es $valor<br>";
if ($valor<=9)
{
echo "Tiene un dígito";
}
elseif ($valor<100)
{
echo "Tiene 2 dígitos";
}
else
{
echo "Tiene 3 dígitos";
}
?>
</body>
</html>
<?
switch ($variable) {
case 0:
sentencias en caso 0;
break;
case 1:
sentencias en caso 1;
break;
...
default:
sentencias finales;
}
?>
Veamos un Ejemplo:
<?
switch ($i) {
case 0:
echo "Variable en valor bajo";
break;
case 1:
echo "Variable en valor alto";
break;
default:
echo "La variable no es binária";
}
?>
Este código hará un switch para la variable $i, en el caso que esta sea 0,
imprimirá el mensaje 'Variable en valor bajo', si es 1 imprimirá 'Variable en valor
alto' y sino, nos dirá que la variable no es un número decimal.
Vemos que cada valor se relaciona con un caso, en el interior del cual realizamos
las acciones requeridas y una instrucción llamada break, de lo contrario, se
seguirían ejecutando las instrucciones de los demás casos.
while (condición)
{
[Instrucciones];
}
Esta estructura está en casi todos los lenguajes. El bloque se repite mientras la
condición del while sea verdadera.
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$valor=rand(1,100);
$inicio=1;
while($inicio<=$valor)
{
echo $inicio;
echo "<br>";
$inicio++;
}
?>
</body>
</html>
La variable $inicio tiene el valor 1 antes de ingresar al while. Cada vez que se
ejecuta una vez el bloque del while se incrementa $inicio en uno. Cuando $inicio
supere la variable aleatoria $valor finalizará la estructura repetitiva y pasará a
ejecutarse la instrucción inmediatamente siguiente a la llave de cerrado.
Hay que tener cuidado con este tipo de bucle, en el interior del bloque de acciones
siempre se debe modificar algun parametro de la condicion para que esta acabe
cumpliendose, de lo contrario crearemos un bucle infinito.
{
[Instrucciones];
} while (condición);
<?
$var1 = 0;
do {
echo "\$var1 = $var1<br>";
$var1 ++;
} while ($var1 <= 10);
?>
$var1 = 0
$var1 = 1
$var1 = 2
$var1 = 3
$var1 = 4
$var1 = 5
$var1 = 6
$var1 = 7
$var1 = 8
$var1 = 9
$var1 = 10
for([Inicialización de la
variable];[Condición];[Incremento o decremento de la
variable])
{
[Instrucciones];
}
Tomemos como ejemplo el hecho de mostrar en la página web los números del 1
al 100:
html>
<head>
<title>Problema</title>
</head>
<body>
<?php
for($f=1;$f<=100;$f++)
{
echo $f;
echo "<br>";
}
?>
</body>
</html>
for($f=1;$f<=100;$f++)
{
echo $f;
echo "<br>";
}
<?
$vector = array("uno", "dos", "tres");
foreach ($vector as $valor) {
echo "Valor: $valor<br>";
}
?>
Esta expresión tambien nos permite trabajar con vectores con indice, en este caso
trabajaremos así:
<?
$vector = array(
"uno" => 1,
"dos" => 2,
"tres" => 3,
"diecisiete" => 17
);
foreach($vector as $indice => $valor) {
print "\$vector[$indice] => $valor.\n";
}
?>
Unidad III.
Trabajo con Formularios HTML en PHP
<html>
<head>
<title>Formulario de entrada del dato</title>
</head>
<body>
<form method="post" action="pagina2.php">
Ingrese su nombre:
<input type="text" name="nombre">
<br>
<input type="submit" value="confirmar">
</form>
</body>
</html>
Para crear un cuadro de texto para el ingreso del nombre debemos definir un
objeto de tipo "text" y darle un nombre:
La propiedad type nos permite definir el tipo de control y con la propiedad name
indicamos el nombre del control.
Ahora necesitamos una página con un pequeño programa en PHP que procese los
datos ingresados en el formulario:
<html>
<head>
<title>Captura de datos del form</title>
</head>
<body>
<?php
echo "El nombre ingresado es:";
echo $_REQUEST['nombre'];
?>
</body>
</html>
echo $_REQUEST['nombre'];
Implementar un formulario que solicite la carga de dos enteros, uno en cada text.
Disponer dos controles de tipo radio que nos permitan seleccionar si queremos
sumar o restar los dos valores ingresados:
<html>
<head>
<title>Problema</title>
</head>
<body>
<form action="pagina2.php"
method="post">
Ingrese primer valor:
<input type="text" name="valor1">
<br>
Ingrese segundo valor:
<input type="text" name="valor2">
<br>
<input type="radio" name="radio1" value="suma">sumar
<br>
<input type="radio" name="radio1" value="resta">restar
<br>
<input type="submit" name="operar">
</form>
</body>
</html>
Es importante notar que los dos controles tienen el MISMO nombre. Esto es
necesario para que el navegador sepa que los dos controles están relacionados
(recordar que cuando uno selecciona un radio se debe deseleccionar el otro)
Desde la otra página accederemos al value del control seleccionado. Por último
disponemos un control de tipo submit para el envio de los datos del formulario.
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
if ($_REQUEST['radio1']=="suma")
{
$suma=$_REQUEST['valor1'] + $_REQUEST['valor2'];
echo "La suma es:".$suma;
}
else
{
if ($_REQUEST['radio1']=="resta")
{
$resta=$_REQUEST['valor1'] - $_REQUEST['valor2'];
echo "La resta es:".$resta;
}
}
?>
</body>
</html>
if ($_REQUEST['radio1']=="suma")
{
$suma=$_REQUEST['valor1'] + $_REQUEST['valor2'];
echo "La suma es:".$suma;
.
.
Implementar un formulario que solicite la carga de dos enteros, uno en cada text.
Disponer dos controles de tipo checkbox que nos permitan seleccionar si
queremos sumar y/o restar los valores ingresados.
<head>
<title>Problema</title>
</head>
<body>
<form action="pagina2.php"
method="post">
Ingrese primer valor:
<input type="text" name="valor1">
<br>
Ingrese segundo valor:
<input type="text" name="valor2">
<br>
<input type="checkbox" name="check1">sumar
<br>
Es importante notar que cada checkbox tiene un nombre distinto. Ahora veamos
el código de la página que procesa el formulario:
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
if (isset($_REQUEST['check1']))
{
$suma=$_REQUEST['valor1'] + $_REQUEST['valor2'];
echo "La suma es:".$suma."<br>";
}
if (isset($_REQUEST['check2']))
{
$resta=$_REQUEST['valor1'] - $_REQUEST['valor2'];
echo "La resta es:".$resta;
}
?>
</body>
</html>
Disponemos dos if a la misma altura ya que los dos controles de tipo checkbox
podrían estar seleccionados.
<html>
<head>
<title>Problema</title>
</head>
<body>
<form action="pagina2.php"
method="post">
Ingrese primer valor:
<input type="text" name="valor1">
<br>
Ingrese segundo valor:
<input type="text" name="valor2">
<br>
<select name="operacion">
<option value="suma">sumar</option>
<option value="resta">restar</option>
</select>
<br>
<input type="submit" name="operar">
</form>
</body>
</html>
<select name="operacion">
<option value="suma">sumar</option>
<option value="resta">restar</option>
</select>
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
if ($_REQUEST['operacion']==suma)
{
$suma=$_REQUEST['valor1'] + $_REQUEST['valor2'];
echo "La suma es:".$suma;
}
else
{
if ($_REQUEST['operacion']==resta)
{
$resta=$_REQUEST['valor1'] - $_REQUEST['valor2'];
echo "La resta es:".$resta;
}
}
?>
</body>
</html>
if ($_REQUEST['operacion']==suma)
...
<html>
<head>
<title>Problema</title>
</head>
<body>
<form action="pagina2.php" method="post">
Ingrese nombre:<input type="text" name="nombre"><br>
Ingrese su curriculum:<br>
<textarea name="curriculum"></textarea>
<br>
<input type="submit" value="Confirmar">
</form>
</body>
</html>
<textarea name="curriculum"></textarea>
La página PHP que procesa los dos datos ingresados en el formulario es:
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
echo "El nombre ingresado:".$_REQUEST['nombre'];
echo "<br>";
echo "El curriculum:".$_REQUEST['curriculum'];
?>
</body>
</html>
Unidad IV.
Acceso a Bases de Datos MySQL
Introducción a MySQL
MySQL es un sistema gestor de bases de datos relacionales en SQL, esto significa
que permite la gestion de los datos de una BBDD relacional usando un lenguaje de
consulta estructurado. Y, por tanto, que a partir de una oracion, MySQL llevará a
cabo una determinada accion sobre nuestra base de datos.
<?
$direccion = 'localhost';
$usuario = 'usuario';
$password = 'password';
$db=mysql_connect($direccion,$usuario,$password);
?>
Una vez hemos realizado la conexión, tenemos que seleccionar sobre que base de
datos queremos trabajar.
<?
mysql_select_db("nombre_de_la_db",$db);
?>
Una vez conectados y con una base de datos seleccionada ya podemos empezar
con las instrucciones de SQL de consulta, edicion, inserción...
Desconexión MySQL
<?php
mysql_close($db);
?>
Todos estos códigos que serán explicados en los próximos capítulos del curso,
deben estar entre el mysql_connect y el mysql_close.
<?php
$qry = mysql_query($db,'COMANDO MySQL');
?>
<?php
while($row = mysql_fetch_array($qry)) {
echo '<br>'.$row[0];
}
?>
Los dos primeros campos són de longitud variable, por lo que deberemos
especificar un tamaño máximo de la siguiente manera:
INT (6)
VARCHAR(12)
Ademas, podemos indicar si el campo puede estar vacío o si queremos que tenga
un valor predeterminado:
Conociendo esto ya podemos realizar una creación de tabla, lo que haremos con
CREATE TABLE de la siguiente manera:
<?php
$sql = "CREATE TABLE `agenda` (
`nombre` varchar(30) NOT NULL default 'default',
`telefono` int(9) NOT NULL default '000000000',
`descripcion` TEXT NOT NULL default ''
) TYPE=MyISAM;";
mysql_query($db, $sql);
?>
Donde tabla será el nombre de la tabla donde insertaremos los valores 'valor 1'...
en los campos campo1...
<?php
$sql = "INSERT INTO agenda (nombre, telefono) VALUES
('eloi',555405180)";
mysql_query($sql,$db);
?>
Consultas MySQL
Para realizar una consulta a una base de datos MySQL desde PHP, deberemos
usar dos lenguajes de programacion distintos, el lenguaje PHP, para ejecutar la
página en el servidor y el lenguaje de SQL para entendernos con la base de datos.
Donde campos son los campos que nos devolverá separados por comas o * para
devolverlos todos, tabla la tabla en la que trabajaremos y condicion es una
condición que deberan cumplir las entradas devueltas.
Donde tenemos que nombre es un campo que deberá ser igual (=) a "Jose",
además del igual (=), tenemos el distinto (!=), el mayor (>), el menor (<), el
mayor o igual (>=), el menor o igual (<=) y el parece (like). La consulta sería
como sigue:
<?
$sql = "select * from agenda where nombre = 'Jose'";
?>
Además, podemos añadir las palaras 'order by' y un campo para ordenar por ese
campo y 'asc' o 'desc' para que sea ascendente o descendente.
Tambien la palabra 'limit' seguida del resultado a empezar, una coma (,) y en
número de resultados a mostrar para paginarlos.
<?
$sql = "select * from agenda where nombre like 'J%' order
by nombre limit 0,20";
$resultados = mysql_query($sql,$db);
while($row = mysql_fetch_array($resultados)) {
echo '<br>'.$row["nombre"].'-'.$row["telefono"];
}
?>
Como vemos, volvemos a utilizar la clausula WHERE para escoger las entradas
que hay que editar, podemos actualizar varios campos de la siguiente manera:
El método no tiene mas secretos que esto, veamos un ejemplo real para ver cómo
funciona exactamente desde PHP:
<?php
$sql = "UPDATE agenda SET telefono = 555405181 WHERE
nombre = 'eloi'";
mysql_query($sql,$db);
?>
<?php
$sql = "DELETE FROM agenda WHERE nombre = 'eloi'";
mysql_query($sql,$db);
?>
Y es que gracias a los JOIN podemos leer datos de diferentes bases de datos en
una única consulta. Lo que nos permitirá diseñar fácilmente tablas relacionadas
entre ellas, veamos un ejemplo:
Figura 1: En este ejemplo podemos ver una relación entre las tablas de
empleados y de despachos, y la representación de un join entre ambas
INNER JOIN
Este tipo de JOIN une los resultados coincidentes en ambas tablas, no devolverá
un registro de una tabla si no coincide con otro de la otra.
NATURAL JOIN Este JOIN retorna los registros de ambas tablas que coincidan en
todos los campos con el mismo nombre ( en el ejemplo empleados.nombre y
despachos.nombre ).