TUTORIAL DE PHP M. en C. Erika Vilches Parte 3 http://www.erikavilches.com
Arreglos Contienen muchas variables similares En lugar de tener muchas variables similares, se pueden almacenar los datos como elementos en un arreglo. Cada elemento tiene su propio identificador, de forma que pueda ser fácilmente accedido.
Tipos de Arreglos Numéricos Un arreglo con una llave numérica Asociativos Un arreglo en donde cada llave esta asociada con un valor Multidimensionales Un arreglo que contiene uno o más arreglos
Arreglos Numéricos Almacena cada elemento con una llave numérica. Formas de crearlo: $names = array("peter","quagmire","joe"); Llave asignada automáticamente $names[0] = "Peter"; $names[1] = "Quagmire"; $names[2] = "Joe"; Asignación manual de llaves <?php $names[0] = "Peter"; $names[1] = "Quagmire"; $names[2] = "Joe"; echo $names[1]. " and ". $names[2]. " are ". $names[0]. "'s neighbors";?> Quagmire and Joe are Peter's neighbors
Arreglos Asociativos Cada llave esta asociada con un valor. Cuando se almacena información sobre valores con un nombre específico, un arreglo numérico no es siempre la mejor manera de hacerlo. Con los arreglos asociativos, podemos utilizar los valores como llaves y asignarles valores. Ejemplo: Arreglo para asignar edades a diferentes personas: $ages = array("peter"=>32, "Quagmire"=>30, "Joe"=>34); $ages['peter'] = "32"; $ages['quagmire'] = "30"; $ages['joe'] = "34";
Ejemplo: <?php $ages['peter'] = "32"; $ages['quagmire'] = "30"; $ages['joe'] = "34"; echo "Peter is ". $ages['peter']. " years old.";?> Peter is 32 years old.
Arreglos Multidimensionales Cada elemento en el arreglo principal puede ser también un arreglo Cada elemento en el sub-arreglo puede ser también un arreglo, etc...
Ejemplo: Crear un arreglo multidimensional, con llaves autoasignadas. $families = array ( "Griffin"=>array ( "Peter", "Lois", "Megan" ), "Quagmire"=>array ( "Glenn" ), "Brown"=>array ( "Cleveland", "Loretta", "Junior" ) ); Si lo imprimiéramos Array ( [Griffin] => Array ( [0] => Peter [1] => Lois [2] => Megan ) [Quagmire] => Array ( [0] => Glenn ) [Brown] => Array ( [0] => Cleveland [1] => Loretta [2] => Junior ) ) echo "Is ". $families['griffin'][2]. " a part of the Griffin family?"; Is Megan a part of the Griffin family?
Formas y User Input Cualquier forma en una página HTML estará automáticamente disponible para los scripts PHP. Ejemplo: <html> <body> <form action="welcome.php" method="post"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> </body> </html> <html> <body> Welcome <?php echo $_POST["name"];?>.<br /> You are <?php echo $_POST["age"];?> years old. </body> </html> welcome.php Output Welcome John. You are 28 years old.
Las variables $_GET y $_POST se utilizan para recuperar información de las formas, tal como el user input.
$_GET La variable $_GET es utilizada para recuperar valores de una forma enviados con el método get Es un arreglo de nombres de variables y valores enviados por el método HTTP GET. La información enviada con el método get es visible para todo el mundo (se desplegará en la barra de direcciones del browser) y tiene limites en la cantidad de información que puede enviar (Máx. 100 caracteres).
Ejemplo: <form action="welcome.php" method="get"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> Cuando el usuario de click en Submit http://www.erikavilches.com/welcome.php?name=peter&age=37 Ahora welcome.php puede usar la variable $_GET para obtener los datos de la forma Welcome <?php echo $_GET["name"];?>.<br /> You are <?php echo $_GET["age"];?> years old! Los nombres de los campos de la forma son automáticamente las llaves del arreglo $_GET
$_REQUEST Contiene los contenidos de $_GET, $_POST y $_COOKIE Se puede usar para obtener el resultado de información enviada con los métodos GET o POST. Ejemplo: Welcome <?php echo $_REQUEST["name"];?>.<br /> You are <?php echo $_REQUEST["age"];?> years old!
$_POST Para recolectar valores de una forma enviados con el método POST (method= post ). La información enviada con el método POST es invisible para otros (no se muestra en el URL) y no tiene limites en la cantidad de información a enviar.
Ejemplo: <form action="welcome.php" method="post"> Enter your name: <input type="text" name="name" /> Enter your age: <input type="text" name="age" /> <input type="submit" /> </form> Cuando el usuario de click en Submit http://www.erikavilches.com/welcome.php Ahora welcome.php puede usar la variable $_POST para obtener los datos de la forma Welcome <?php echo $_POST["name"];?>.<br /> You are <?php echo $_POST["age"];?> years old! Los nombres de los campos de la forma son automáticamente las llaves del arreglo $_POST $_REQUEST Welcome <?php echo $_REQUEST["name"];?>.<br /> You are <?php echo $_REQUEST["age"];?> years old!
Conectarse a una Base de Datos Esto se hace con la función mysql_connect(). mysql_connect(servername,username,password); servername Opcional. Especifica el servidor al cual se conectará. El valor default es "localhost:3306" username Opcional. Especifica el usuario con el que ser loggeara. El valor default es el nombre del usuario al que pertenece el proceso del servidor web. password Opcional. Especifica el password con el que se loggeara. El default es
Hay más parametros pero los que se han mencionado son los mas importantes. mysql_error() regresa el texto del mensaje de error de la operación previa en MySQL Ejemplo: Almacenar la conexión en la variable $con para utilizarla despues en el script. Ejecutar die si la conexión falla; die es equivalente a exit(). No evita que los destructores corran. <?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) die('could not connect: '. mysql_error()); // some code?>
Cerrando una conexión La conexión se cierra tan pronto como termina el script. Para terminar la conexión antes, utilizar la función mysql_close(). Ejemplo: <?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) die('could not connect: '. mysql_error()); // some code mysql_close($con);?>
Crear una Base de Datos Se utiliza la función mysql_query() para enviar un query o comando a una conexión MySQL. Ejemplo: Crear una base llamada my_db. <?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) die('could not connect: '. mysql_error()); if (mysql_query("create DATABASE my_db",$con)) echo "Database created"; else echo "Error creating database: ". mysql_error(); mysql_close($con);?>
Crear una Tabla Ejemplo: Crear una tabla llamada person, con tres columnas. Los nombres de las columnas serán FirstName, LastName, y Age. Una base debe estar seleccionada antes de que se pueda crear una tabla. La base de datos es seleccionada con la función mysql_select_db. Cuando se crea un campo de tipo varchar, se debe especificar la longitud máxima del campo. (Ej: varchar(15))
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) die('could not connect: '. mysql_error()); // Create database if (mysql_query("create DATABASE my_db",$con)) echo "Database created"; else echo "Error creating database: ". mysql_error(); // Create table in my_db database mysql_select_db("my_db", $con); $sql = "CREATE TABLE person ( FirstName varchar(15), LastName varchar(15), Age int )"; mysql_query($sql,$con); mysql_close($con);?> Indicar que personid es la llave primaria $sql = "CREATE TABLE person ( personid int NOT NULL AUTO_INCREMENT, PRIMARY KEY(personID), FirstName varchar(15), LastName varchar(15), Age int )"; mysql_query($sql,$con);
Insertar Datos en una Tabla Ejemplo: Añadir dos nuevos registros a la tabla person <?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) die('could not connect: '. mysql_error()); mysql_select_db("my_db", $con); mysql_query("insert INTO person (FirstName, LastName, Age) VALUES ('Peter', 'Griffin', '35')"); mysql_query("insert INTO person (FirstName, LastName, Age) VALUES ('Glenn', 'Quagmire', '33')"); mysql_close($con);?>
Insertar Datos de una Forma en una Base de Datos <html> <body> <form action="insert.php" method="post"> Firstname: <input type="text" name="firstname" /> Lastname: <input type="text" name="lastname" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> </body> </html> Forma.html
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) die('could not connect: '. mysql_error()); mysql_select_db("my_db", $con); $sql="insert INTO person (FirstName, LastName, Age) VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')"; if (!mysql_query($sql,$con)) die('error: '. mysql_error()); echo "1 record added"; mysql_close($con)?> insert.php
Seleccionar Datos de una Tabla Ejemplo: Seleccionar todos los datos almacenados en la tabla person. La función mysql_fetch_array() se utiliza para devolver una fila del recordset como un arreglo. <?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) die('could not connect: '. mysql_error()); mysql_select_db("my_db", $con); $result = mysql_query("select * FROM person"); while($row = mysql_fetch_array($result)) echo $row['firstname']. " ". $row['lastname']; echo "<br />"; mysql_close($con);?> Peter Griffin Glenn Quagmire
Ejemplo: Desplegando el resultado en una tabla HTML. <?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) die('could not connect: '. mysql_error()); mysql_select_db("my_db", $con); $result = mysql_query("select * FROM person"); echo "<table border='1'> <tr> <th>firstname</th> <th>lastname</th> </tr>"; while($row = mysql_fetch_array($result)) echo "<tr>"; echo "<td>". $row['firstname']. "</td>"; echo "<td>". $row['lastname']. "</td>"; echo "</tr>"; echo "</table>"; mysql_close($con);?>
Update Ejemplo: <?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) die('could not connect: '. mysql_error()); mysql_select_db("my_db", $con); mysql_query("update Person SET Age = '36' WHERE FirstName = 'Peter' AND LastName = 'Griffin'"); mysql_close($con);?>
Delete Ejemplo: <?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) die('could not connect: '. mysql_error()); mysql_select_db("my_db", $con); mysql_query("delete FROM Person WHERE LastName='Griffin'"); mysql_close($con);?>