lunes, 14 de octubre de 2013

USO DEL METODO GET , POST YFORMULARIOS


Nombre: Alexandra  Maguana
Ciclo: Quinto “Sistemas”


Método GET y POST
Existen tres formas de dar valor a variables en PHP en páginas web. Formularios, enlaces HTML y sesiones.
Formularios
La primera forma es crear un formulario, el cuál utiliza los métodos GET y POST.
$_GET y $_POST son dos de las variables superglobales que vimos antes. Por tener ámbito global, los valores que se incluyan mediante estos dos métodos estarán disponibles en la página siguiente. Mediante estos métodos podemos pasar determinados valores de una pagina a otra.
El método que se desee usar se indica en la propiedad "Method", y la página a la cual deseo enviar la información se indica en la propiedad "Action" del formulario.
Es importante recordar que $_GET y $_POST son arreglos que tienen posiciones asociativas, es decir, cada posición en el arreglo tiene un nombre, y ese nombre es el mismo que tiene cada campo del formulario.
Ejemplos de envío de parámetros usando formularios


Enlaces HTML

La segunda forma de enviar las variables es a través de enlaces. Aquí, lo que se hace es enviar las variables mediante el método GET. Más que nada porque cuando escribimos el enlace ya le estamos pasando las variables por la línea de dirección:
<a href=”index.php?estilo=4&tipo=2″>Inicio</a>
En este caso, las variables PHP estilo y tipo, se envían usando el método GET. Cuando ingresemos al enlace Inicio, accederemos a la pagina index.php y en la url se verán los valores de las variables estilo y tipo.
Sesiones
Existe un tercer método de manejo de variables en PHP; las sesiones, pero éste tema se tratará un poco más adelante.

Como recogemos los Valores de GET y POST

Para recoger los valores de un formulario donde se ha usado el método POST se debe escribir:

$variable = $_POST['Posicion'];

Para recoger una variable enviada por el método GET o por medio de un enlace se hace lo siguiente:

$variable = $_GET['Posicion'];

Ejemplo

<a href=”index.php?estilo=4&tipo=2″>Inicio</a>

Al presionar el enlace "Inicio", se dirige a la página "index.php" y es allí donde debo recibir las variables de la siguiente manera:

<?php
$estilo = $_GET['estilo'];
$tipo = $_GET['tipo'];
echo $estilo . "<br>";
echo $tipo . "<br>";
?>




Podemos observar que los datos enviados por GET son visualizados desde la barra de direcciones, lo que lo convierte en un método inapropiado para enviar información confidencial.
Este es un tema muy preguntado en internet y no vi ninguna respuesta muy coherente así que voy a intentar dar una explicación, desde mi punto de vista, cual es la diferencias entre $_REQUEST $_GET $_POST $_COOKIE
Para entender las principales diferencias creo que es mejor primero ver que es lo que hace cada una de estas variables reservadas.
$_POST :Es una matriz asociativa de variables que fueron obtenidas por el método HTTP POST. Por lo general son enviadas por un formulario.
$_GET :Es una matriz asociativa de variables que fueron obtenidas mediante parametros URL. Son enviadas en la url:
$_COOKIE :Es una matriz asociativa de variables que fueron obtenidas mediante HTTP Cookies.
$_REQUEST :Es una matriz asociativa de variables que contiene todo lo que contiene $_GET, $_POST y $_COOKIE.
RECUPERANDO DATOS DEL FORMULARIO. VARIABLES $_REQUEST
Cuando un usuario pulsa el botón enviar de un formulario, la información que contenían sus campos es enviada a una dirección URL desde donde tendremos que recuperarla para tratarla de alguna manera. Por ejemplo, si realiza una compra, tendremos que recuperar los datos para completar el proceso de pago. La información del formulario “viaja” almacenada en variables que podremos recuperar y utilizar mediante PHP. Una de las formas de recuperación consiste en usar $_REQUEST. 
RECUPERAR VARIABLES CON REQUEST

REQUEST nos permite capturar variables enviadas desde formularios con los métodos GET o POST. Vamos a ver dos ejemplos de formularios (ejemplo1.html y ejemplo2.html), que en un caso se enviarán usando GET y en otro usando POST. Ambos formularios enviarán la información (action) a una página común desde donde recuperaremos los datos usando $_REQUEST.

El código de los archivos html sería el siguiente para ejemplo1.html y ejemplo2.html. Escribe el código en un editor de texto como Notepad++ y visualízalos en tu navegador:

<form name="formulario" method="get" action="ejemploRequest.php">
Nombre: <input type="text" name="nombre" value="">
<input type="submit" />
</form>

<form name="formulario" method="post" action="ejemploRequest.php">
Nombre: <input type="text" name="nombre" value="">
<input type="submit" />
</form>

Como podemos observar, el ejemplo1.html envía los datos por GET mientras que el ejemplo2.html envía los datos por POST. Ahora bien, la acción o destino donde se enviarán los datos es la misma en los dos casos, la dirección ejemploRequest.php.

Escribe este código y guárdalo con un nombre de archivo como ejemploRequest.php. A continuación, sube el fichero al servidor en la misma carpeta donde subiste el ejemplo1.html y ejemplo2.html

<?php //Ejemplo aprenderaprogramar.com
$nombre = $_REQUEST['nombre'];
echo $nombre;
?>

A continuación, observa el resultado obtenido al introducir el nombre tanto en el ejemplo1.html como en el ejemplo2.html, y verás que es el mismo.

 Vamos a explicar el proceso que ha tenido lugar. El primer archivo es un documento HTML. Para ser más correctos, deberíamos haberlo escrito de esta manera:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
</head>
<body>
<form name="formulario" method="get" action="ejemploRequest.php">
Nombre: <input type="text" name="nombre" value="">
<input type="submit" />
</form>
</body>
</html>

Sin embargo, comprobamos que los navegadores tratan de interpretar y mostrar el resultado de un código HTML (o PHP) incluso cuando la sintaxis o la definición del documento no es del todo correcta. Esto debemos conocerlo, sin embargo recomendamos que siempre se trate de ser lo más correctos posibles a la hora de escribir código web.

Vemos que hemos definido un formulario en cuya cabecera hemos puesto que el método de envío de los datos va a ser el método GET y que la URL de destino va a ser ejemploRequest.php. A su vez, el formulario tiene un campo cuyo atributo name es “nombre”. Ese atributo define el nombre de la variable que vamos a poder recuperar en la URL de destino. En el archivo php hemos incluido la línea $nombre = $_REQUEST['nombre']; que significa que creamos una variable php denominada $nombre donde almacenamos la información del campo ‘nombre’ que recibe la URL a través del método GET proviniente del formulario. Si tuviéramos otros campos que hubiéramos definido como apellidos, teléfono, edad, el tratamiento sería similar. Por ejemplo:
$apellidos = $_REQUEST['apellidos'];
$telefono = $_REQUEST['celular'];
$edadPersona = $_REQUEST['edad'];

Fíjate en que una cosa es la variable en la que almacenamos la información recuperada, y otra cosa es el nombre del campo del formulario de donde proviene. Por ejemplo en $apellidos = $_REQUEST['apellidos']; coinciden el nombre de la variable que utilizamos con el nombre del campo del formulario. Sin embargo, en $telefono = $_REQUEST['celular']; no coinciden. En este caso, el campo que proviene del formulario se llama ‘celular’ mientras que la información que venga en ese campo la almacenamos en una variable a la que hemos llamado $telefono. Finalmente, en $edadPersona = $_REQUEST['edad']; estamos almacenando en una variable a la que hemos llamado $edadPersona la información proviniente de un campo del formulario denominado ‘edad’.
Con frecuencia los nombres de las variables y de los campos del formulario se hacen coincidir, pero en otras ocasiones no. Esto queda a elección del programador.
Ejemplo

Diseñar un desarrollo web simple con php que pida al usuario el precio de tres productos en tres establecimientos distintos denominados “Tienda 1”, “Tienda 2” y “Tienda 3”. Una vez se introduzca esta información se debe calcular y mostrar el precio medio del producto. El envío de datos debe hacerse por POST y la recuperación con REQUEST.


SOLUCIÓN

La solución esquematizada en pseudocódigo es la siguiente:

1. Inicio
2. Mostrar “Introduzca el precio del producto en el establecimiento número 1, en euros” : Pedir Precio1
3. Mostrar “Introduzca el precio del producto en el establecimiento número 2, en euros” : Pedir Precio2
4. Mostrar “Introduzca el precio del producto en el establecimiento número 3, en euros” : Pedir Precio3
5. Media = (Precio1 + Precio2 + Precio3) / 3
6. Mostrar “El precio medio del producto es”, Media, “euros”
7. Fin

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
</head>
<body>
<form name="formularioDatos" method="post" action="ejemploRequest2.php">
<p> CÁLCULO DEL PRECIO MEDIO DE UN PRODUCTO </p>
<br/>
Introduzca el precio del producto en el establecimiento número 1, en euros: <input type="text" name="precio1" value="">
<br/> <br/>
Introduzca el precio del producto en el establecimiento número 1, en euros: <input type="text" name="precio2" value="">
<br/> <br/>
Introduzca el precio del producto en el establecimiento número 3, en euros: <input type="text" name="precio3" value="">
<br/> <br/>
<input value="Calcular" type="submit" />
</form>
</body>
</html>


Es posible que durante el desarrollo del curso te encuentres visualizaciones de este tipo, donde podrás comprobar que los acentos o tildes no se ven bien.




Recordarte que la solución a esto es, cuando estamos trabajando con Notepad++, elegir en el menú Formato la opción “Codificar en UTF-8 sin BOM”. En caso de que por error el archivo esté en otro formato, elige “Convertir en UTF-8 sin BOM” para dejar correctamente la codificación del archivo.


Por otro lado necesitamos el archivo php.

<?php //Ejemplo aprenderaprogramar.com
$precio1 = $_REQUEST['precio1'];
$precio2 = $_ REQUEST ['precio2'];
$precio3 = $_ REQUEST ['precio3'];
$media = ($precio1+$precio2+$precio3)/3;
echo "<br/>   DATOS RECIBIDOS";
echo "<br/>   Precio producto establecimiento 1: ". $precio1. " euros";
echo "<br/>   Precio producto establecimiento 2: ". $precio2. " euros";
echo "<br/>   Precio producto establecimiento 2: ". $precio3. " euros <br/>";
echo "<br/>   El precio medio del producto es de ". $media. " euros";
?>


FORMULARIOS

Los Formularios no forman parte de PHP, sino del lenguaje estánder de Internet, HTML, pero como éstos van a aperecer muchas veces durante el curso,  vamos a dedicar esta algunas líneas a ellos. Lo que viene a continuación es HTML y no PHP.
Todo formulario comienza con la etiqueta <FORM ACTION="lo_que_sea.php" METHOD="post/get">. Con . Con ACTION indicamos el script que va procesar la información que recogemos en el formulario, mientras que METHOD nos indica si el usuario del formulario va ha  enviar datos (post) o recogerlos (get). La etiqueta <FORM> indica el final del formulario.
A partir de la etiqueta <FORM> vienen los campos de entrada de datos que pueden ser:
Cuadro de texto:
<input type="text" name="nombre" size="20" value="jose">
Cuadro de texto con barras de desplazamiento:
<textarea rows="5" name="descripcion" cols="20">Es de color rojo</textarea>
Casilla de verificación:
<input type="checkbox" name="cambiar" value="ON">
Botón de opción:
<input type="radio" value="azul" checked name="color">
Menú desplegable:
<select size="1&qu class="codigo"><select size="1" name="dia">
<option selected value="lunes">lunes</option>
<option>martes</option>
<option value="miercoles">miercoles</option>
</select>
Boton de comando:
<input type="submit" value="enviar" name="enviar">
Campo oculto:
<input type="hidden" name="edad" value="55">
Este último tipo de campo resulta especialmente útil cuando que remos pasar datos ocultos en un formulario.
Como habrás observado todos lo tipos de campo tienen un modicador llamado name, que no es otro que el nombre de la variable con la cual recogeremos los datos en el script indicado por el modificador ACTION de la etiqueta FORMFORM, con value establecemos un valor por defecto. 
A continuación veamos un ejemplo, para lo cual crearemos un formulario en HTML como el que sigue y lo llamaremos formulario.htm:
<HTML>
<BODY>
<FORM METHOD="post" ACTION="mis_datos.php">
<input type="hidden" name="edad" value="55">
<p>Tu nombre <input type="text" name="nombre" size="30" value="jose"></p>
<p>Tu sistema favorito 
<select size="1" name="sistema">
<option selected value="Linux">Linux</option>
<option value="Unix">Unix</option>
<option value="Macintosh">Macintosh</option>
<option value=&qmargin-left: 75"><option value="Windows">Windows</option>
</select></p>
<p>¿Te gusta el futbol ? <input type="checkbox" name="futbol" value="ON"></p>
<p>¿Cual es tu sexo?</p>
<blockquote>
<p>Hombre<input type="radio" value="hombre" checked name="sexo"></p>
<p>Mujer <input type="radio" name="sexo" value="mujer"></p>
</blockquote>
<p>Aficiones</p>
<p><textarea rows="5" name="aficiones" cols="28"></textarea></p>
<p><input type="submit" value="Enviar datos" name="enviar"> 
<input type="res-left: 50"> <input type="reset" value="Restablecer" name="B2"></p>
</FORM>
</BODY>
<HTML>
Y ahora creemos el script PHP llamado desde le formulario mis_datos.php:
<?PHP;
if ($enviar) {
echo "Hola <b>" . $nombre . "</b> que tal estás<BR>\n";
echo "Eres " . $sexo . "<BR>\n";
echo "Tienes " . $edad . "<BR>\n";
echo "Tu sistema favorito es " . $sistema . "<BR>\n";
if ($futbol) {
echo "Te gusta el futbol <BR>\n";
} else odigo" style="margin-left: 50">} else {
echo "NO te gusta el futbol <BR>\n";
}
if ($aficiones != "") {
echo "Tus aficiones son: <BR>\n";
echo nl2br($aficiones);
} else {
echo "NO tienes aficiones <BR>\n";
}
}
echo "<a href='formulario.htm'>VOLVER AL FORMULARIO</a>"
?>
Una vez rellenados los datos del formulario, pulsamos el botón Enviar datos, con lo que le campo enviar toma lo que su etiqueta value indica, es decir enviar="Enviar datos". En nuestro script lo primero que evaluamos es que  se haya enviado el formulario, y para ello nada mejor que comprobar que la variable $enviar no está vacia. Le ponemos el signo dolar delante a enviar, ponemos el signo dolar delante a enviar, ya que en PHP todas las variables se les refiere con este signo.
Pero y fusionaramos el código de ambos fichero, nos ahorrariamo uno. Si la variable $enviar está vacia, enviamos el formulario.
<?PHP;
if ($enviar) {
echo "Hola <b>" . $nombre . "</b> que tal estás<BR>\n";
echo "Eres " . $sexo . "<BR>\n";
echo "Tienes " . $edad . "<BR>\n";
echo "Tu sistema favorito es " . $sistema . "<BR>\n";
if ($futbol) {
echo "Te gusta el futbol <BR>\n";
} else {
echo "NO te gusta el futbol <BR>\n";
}
if ($aficiones != "") {
echo "Tus aficiones son: <BR>\n";
echo nl2br($aficiones);
} else {
echo "NO tienes aficiones <BR>\n";
}
echo "<a href='$PHP_SELF'>VOLVER AL FORMULARIO</a>"

} else {
<HTML>
<BODY>
<FORM METHOD="post" ACTION="<?PHP echo $PHP_SELF ?>">
<input type="hidden" name="edad" value="55">
<p>Tu nombre <input type="text" name="nombre" size="30" nombre" size="30" value="jose"></p>
<p>Tu sistema favorito 
<select size="1" name="sistema">
<option selected value="Linux">Linux</option>
<option value="Unix">Unix</option>
<option value="Macintosh">Macintosh</option>
<option value="Windows">Windows</option>
</select></p>
<p>¿Te gusta el futbol ? <input type="checkbox" name="futbol" value="ON"></p>
<p>¿Cual es tu sexo?</p>
<blockquote>
<p>Hombre<input type="radio" value="hombre" checked name="sexo"></p>
<p>="codigo" style="margin-left: 100"><p>Mujer <input type="radio" name="sexo" value="mujer"></p>
</blockquote>
<p>Aficiones</p>
<p><textarea rows="5" name="aficiones" cols="28"></textarea></p>
<p><input type="submit" value="Enviar datos" name="enviar"> 
<input type="reset" value="Restablecer" name="B2"></p>
</FORM>
</BODY>
</HTML>

<?PHP
} //fin IF
?>
La variable de entorno $PHP_SELF, es una variable de entorno que nos devuelve el nombre del script que estamos ejecutando. Y por último, hacer notar el uso de la función nl2br(), nl2br(), con la cuál sustituimos los retornos de carro del texto, los cuáles  no reconocen los navegadores, por la etiqueta <BR>.
TABLAS

Una tabla en html viene marcada por las etiquetas <table> </table>. Entre esas dos etiquetas definiremos la tabla, las celdas que queremos, las columnas y las características de cada uno de estos parámetros. Pero vamos a empezar explicándote la etiqueta <table>.

Ya hemos dicho que esta etiqueta nos indica que empieza una tabla, pero… ¿podemos predefinir  características de esa tabla? Por supuesto que sí. Una tabla admite muchos parámetros. Nosotros vamos a explicarte los principales.

La tabla: <table>
Como ya ocurre con la etiqueta body, a una tabla también lo podemos definir el fondo de la misma. Esto lo podemos conseguir con el parámetro "bgcolor", que nos pondrá un color de fondo,  o "background" para poner una imagen de fondo. Recuerda que si la imagen es más pequeña que la tabla, ésta se repetirá tanto a lo ancho como a lo largo.

Otro aspecto que podemos definir de la tabla es el borde. Esto lo haremos con el parámetro "border". Como en todas los parámetros que ya hemos visto escribiremos: border= "x" siendo la x un número. Ese número indicará el grosor del borde. Si no ponemos borde o lo escribimos "0", la tabla no mostrará borde ninguno. Por supuesto, también podemos darle color al borde, escribiendo la etiqueta "bordercolor" e indicando el color que queramos para nuestro borde.

El parámetro "width" indircará la anchura de la tabla. Esta anchura la podemos poner en píxeles (width= "300") o con porcentaje (width= "100%").

Dos parámetros más son cellspacing (que define el espacio entre las celdas de la tabla) y cellpadding  (que le marca a la tabla el espacio que debe dejar alrededor del texto dentro de una celda).

Como ejemplo, escribiremos el hipotético supuesto de querer una tabla que sea ancha al 100%, con un borde azul de un píxel de grosor y con un cellpadding de 10 y con un cellspacing de 10. El código quedaría de la siguiente forma.
<table width="100%" border="1" bordercolor="#0000FF" cellspacing="10" cellpadding="10"></table>
Una vez explicadas las tablas, vamos a pasar a explicarte las partes fundamentales de las mismas.
Las filas: <tr>
Como hemos visto en el encabezado las filas se escriben gracias a las etiquetas <tr> con su correspondiente cierre </tr>. El contenido de las columnas que están dentro de la fila lo podemos alínear tanto horizontal como verticalmente.
Para alinearlo verticalmente utilizaremos el atributo "valign" para poder alinearlo arriba de la celda ("top"), en el centro ("middle") o debajo ("bottom").
Para alinearlo horizontalmente utilizaremos el atributo "align". Con este atributo podremos alinear el contenido de las celdas en el centro ("center"), a la izquierda ("left"), a la derecha ("right") o justificado ("justify").
Por supuesto a las filas también les podemos definir el color de fondo ("bgcolor") y el color del borde ("bordercolor").
Las celdas <td>
Las celdas que van dentro de cada fila las tenemos que escribirlas con la etiqueta <td> y su correspondiente cierre </td>.
Al igual que en las filas, en las celdas podemos definir el la alineación del contenido que está dentro con los atributos "valign" y "align".
Las celdas poseen unos atributos que nos ayudan a poder agrupar tantas celdas o tantas columnas como indiquemos en él. Para agrupar celdas utilizaríamos el atributo "colspan" y para agrupar celdas el atributo "rowspan".
Por ejemplo, para agrupar en una celda 2 columnas tenemos que escribir: <td colspan="2"></td>. Y para agrupar dos filas, la indicación sería la siguiente: <td rowspan= "2"></td>.
Las celdas <th>
Las celdas escritas con la etiqueta <th> y su correspondiente cierre, admiten los mismos atributos que las etiquetas <td> y funcionan de la misma forma, salvo que el contenido que esté dentro de una etiqueta <th> está considerado como el encabezado de la tabla, por lo que se creará en negrita y centrado sin que nosotros se lo indiquemos.
A continuación vamos a ponerte un pequeño ejemplo de una tabla que combina todas las cosas que hemos ido viendo en el artículo. Estúdiate primero el código, visualiza cómo quedaría la tabla y luego mírala en el enlace siguiente: Ejemplo de tabla.
<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">
<tr>
<th>Encabezado 1</th>
<th>Encabezado 2</th>
<th>Encabezado 3</th>
</tr>
<tr>
<td rowspan="2" valign="middle" align="left">Este texto está alineado al centro
verticalmente y a la izquierda horizontalmente</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
</table>

NOWRAP

nowrap es un atributo que le podemos colocar a la etiqueta de la celda y que obligará al navegador a no romper esa línea, o sea, a no hacer ningún salto de línea. Con este atributo en la celda, el navegador no respeta el ancho predefinido de la tabla, si es que lo hubiera, y respeta el ancho de la frase, ya que no puede partirla.
Por tanto, si la frase es más larga que el ancho definido de la tabla, ésta se estirará todo lo necesario para albergar la frase sin saltos de línea. El siguiente código nos mostrará como escribir este atributo en la etiqueta de la celda:
<table width="400" border="1" cellpadding="10" cellspacing="0" bordercolor="#000000">
<tr>
<td nowrap>Aunque este texto sea m&aacute;s ancho que los 400 p&iacute;xeles
de la tabla, &eacute;sta no puede dividir mediante saltos de l&iacute;nea
el contenido de la misma, por lo que se estira para albergar toda la frase.</td>
</tr>
</table>
Y a continuación podemos ver el efecto del atributo:
Aunque este texto sea más ancho que los 400 píxeles de la tabla, ésta no puede dividir mediante saltos de línea el contenido de la misma, por lo que se estira para albergar toda la frase.
Etiqueta “caption”

Esta etiqueta sirve para poder ponerle un título o encabezado a la tabla. Puedes poder el encabezado arriba o abajo, dónde tu prefieras, mediante la etiqueta "align": "align=top" para ponerlo arriba y "align=bottom" para ponerlo abajo. En el siguiente ejemplo nosotros lo hemos puesto abajo.
<table width="50%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#000000">
<caption align="bottom">Encabezado de la tabla.</caption>
<tr>
<td align="center">Tablita de ejmplo para la etiqueta "caption"</td>
</tr>
</table>

Crear una base de datos

Veremos en esta página cómo se pueden crear bases de datos MySQL y sus tablas desde una página web hecha con php.
Vamos a empezar primero por crear una base de datos.
Para crear una nueva base de datos, una vez conectado con MySQL escribiremos el siguiente código MySQL:
$sql="create database `nombreBase`";
Observa que el nuevo nombre de la base de datos se escribe entre los signos ` ` Es decir el signo del acento grave , para escribirlo pulsaremos la tecla del acento grave (a la derecha de la "P") y despues el espaciador.
Como siempre, después de escribir la línea con el lenguaje MySQL, debemos mandar la instrucción mediante la función mysql_query();. El código completo para crear una nueva base de datos será el siguiente.
<?php 
$db=mysql_connect("localhost","root","");
$sql="create database `miagenda`";
mysql_query($sql,$db);
mysql_close($db);
?>
En este ejemplo hemos creado una nueva base de datos llamada "miagenda". La base de datos creada está de momento vacía (sin tablas ni ningún dato). Si ejecutamos el código de nuevo, se comprueba primero si la base existe, por lo que no se vuelve a crear de nuevo.
Podemos comprobar que la base de datos se ha creado, abriendo phpMyAdmin, donde veremos que hay una nueva base de datos con el nombre que le hayamos dado.
También podemos poner como nombre de la base de datos una variable, en ese caso la base de datos tomará el nombre del valor de la variable, por lo que mediante formularios podemos hacer que cada usuario tenga su propia base de datos.
$nombre="anyelguti"
$sql="create database `$nombre`";
Mostramos aquí la variable y la forma de insertarla en el código MySQL, por supuesto no debemos de olvidar nunca que el código MySQL (recogido en la variable $sql) debe ir siempre dentro de la conexión, es decir entre las funciones $db=mysql_connect(); y mysql_close($db);. Tampoco debemos olvidar nunca mandarlo a MySQL mediante la función mysql_query($sql,$db);.
Decimos esto porque a partir de ahora mostraremos , para manejar bases de datos, simplemente el código MySQL, dando por supuesto que hay que incluir el resto del código en la página.

Insertar nuevas tablas

Una vez que hemos creado la base de datos, debemos insertar en ella las tablas que la forman. Para ello, como siempre conectamos a MySQL y tal como vimos en el apartado anterior, conectamos con la base de datos:
$db=mysql_connect("localhost","root","");
mysql_select_db("miagenda",$db);
Pondremos después el código para crear la tabla:
$sql = "create table `agenda` (`IDagenda` int(6) not null auto_increment primary key) type = MyISAM;";
Hemos creado aquí una tabla llamada "agenda" con un único campo llamado "IDagenda". Vamos a explicar el código:
·         create table `agenda` : Para crear un elemento escribimos primero la palabra create, después indicamos el tipo de elemento que deseamos crear, en este caso table y por último entre `comillas` se escribe el nombre del elemento, en este caso de la tabla. Observa que en realidad no son comillas, sino el acento grave, tal como hicimos para insertar la base de datos.
·         (`IDagenda` : Dentro del paréntesis escribiremos los datos de los campos que formarán la tabla. En primer lugar, y entre acentos, escribimos el nombre del primer campo.
·         int(6) : Escribimos después el tipo de campo tal como vimos en el tema anterior al crearlos con phpMyAdmin (int=num entero, float=num decimal, varchar=alfanumérico, text=texto largo, etc), y seguido, entre paréntesis la longitud máxima de ese campo.
·         not null auto_increment primary key) : A continuación ponemos el resto de propiedades del campo, es decir en este caso not null indica que el campo no puede ser nulo. auto_increment indica que es un campo de auto incremento. y primary key indica que eel campo será la clave primaria. si quisieramos incluir más campos los pondríamos a continuación,separado por una coma, y siguiendo los mismos pasos. Como no vamos a incluir más, cerramos el paréntesis.
·         type = MyISAM; : esta instrucción debemos ponerla siempre al final, para indicar cómo debe manejar los datos MySQL. en realidad podemos poner también engine = MyISAM;.
El código MySQL es indiferente escribirlo en mayúsculas o minúsculas, por tanto podemos poner tanto create table como CREATE TABLE; sin embargo los nombres de los elementos creados, (tablas y campos), sí distinguen entre mayúsculas y minúsculas, por lo que si un campo lo creamos con su nombre en mayúscula, cuando vayamos a buscarlo o leer sus datos, deberemos escribirlo de la misma manera. Igualmente la palabra MyISAM debemos escribirla tal como está aquí, ya que se refiere a un tipo de código.
Por último, como es habitual, mandamos el código, y cerrarmos la conexión:
mysql_query($sql,$db);
mysql_close($db); 

Incluir más campos

Incluiremos ahora el resto de los campos en la tabla creada anteriormente, para ello utilizamos el código siguiente:
$sql="alter table `nombre_tabla` add `nuevo_campo` propiedades, add `nuevo_campo` propiedades";
Después de escribir alter table, en `nombre_tabla`escribiremos el nombre de la tabla. Para insertar nuevos campos escribimos la instrucción add, seguida del nombre del campo (`nuevo_campo`) y a continuación las propiedades del campo (varchar(50) not null default''). Para insertar otro campo, lo separaremos del anterior mediante una coma, y empezaremos otra vez por la instrucción add.
Seguimos ahora con el ejemplo anterior, en el cual incluimos en la tabla nuevos campos. El código será el siguiente:

<?php 
$con=mysql_connect("localhost","root","");
mysql_select_db("miagenda",$con);
$sql = "alter table `agenda`
        add `nombre` varchar(50) not null default '',
        add `telefono` int(9) not null default '000000000',
        add `email` varchar(100) not null default '---@---',
        add `descripcion` text(2000) not null default '' ";
mysql_query($sql,$con);
mysql_close($con);
?>

para incluir cada uno de los campos debemos, además de poner la pàlabra add delante del nombre, incluir las instrucciones not null y default ''. La instrucción not nul indica que no es un campo nulo, y la instrucción default indica el valor por defecto que tomará el campo, el cual debemos indicarlo seguidamente entre comillas.
BIBLIOGRAFIA






No hay comentarios:

Publicar un comentario