Академический Документы
Профессиональный Документы
Культура Документы
Sentencias para crear la Base de Datos y la tabla CREATE DATABASE biblio; CREATE TABLE libros ( id_libro int NOT NULL auto_increment, autor varchar(150) NOT NULL, isbn varchar(125) NOT NULL , titulo varchar(150) NOT NULL, editorial varchar(125) default NULL, paginas int default NULL , encuadernacion varchar(20) default NULL, anio int NOT NULL , precio decimal(6,2), PRIMARY KEY (id_libro) Acceso a Mysql desde PHP );
25/02/2013
INSERT INTO libros ( autor, isbn, titulo, editorial, paginas, encuadernacion, anio, precio) VALUES ( 'Muriel Barbery', '978-84-322-2811-6', 'La elegancia del erizo', 'Seix Barral', 364, 'Rstica', 2009,7.80), ( 'Paolo Giordano', '978-84-9838-205-1', 'La soledad de los nmeros primos', 'Salamandra', 281, 'Rstica', Rstica , 2009,10.20), ( 'Agota Kristof', '978-84-9711-084-6', 'Claus y Lucas', 'El Aleph', 444, 'Bolsillo', 2009,20.40), ( 'Jos Saramago', '204-7463-2', 'El viaje del elefante', 'Alfaguara', 270, 'Pasta dura', 2009,15.00), ( 'Germn Castro Caycedo', '958-614-650-0', 'Perdido en el Amazonas', 'Planeta', 281, 'Rstica', 2001,9.90), ( 'Mark Haddon', '978-84-7888-910-5', 'El curioso incidente del perro a medianoche', 'Salamandra', 268, 'Rstica', 2008,23.56), ( 'Terenci Moix', '84-473-0126-5', 'No digas que fu un sueo', 'RBA', 378, 'Pasta dura', 1993,7.90), ( 'Gabriel Garca Mrquez', '84-473-0121-4', 'El general en su laberinto', 'RBA', 285, 'Pasta dura', 1993,15.87), ( 'Gabriel Garca Mrquez', '84-473-1514-2', 'Noticia de un secuestro', 'RBA', 254, 'Pasta dura', 1999,12.78), ( 'Stieg Larsson', '978-84-233-4044-6', 'Los hombres que no amaban a las mujeres', 'Destino', 665, 'Rstica', 2009,54.89), ( 'Josh Bazell', '978-84-339-7512-6', 'Burlando a la parca', 'Anagrama', 316, 'Rstica', 2009,15.87);
Acceso a Mysql desde PHP 3
Formulario De Bsqueda
<html> <head> <title>Bsqueda en Catlogo</title> </head> <body> <h1>Bsqueda en Catlogo</h1> <form action=Resultado.php" method="post"> Seleccione tipo de bsqueda:<br /> <select name="tipobusqueda"> <option value="autor">Autor</option> <option value="titulo">Ttulo</option> <option value="isbn">ISBN</option> </select> <br /> Entrar el trmino a buscar:<br /> <input name="valorbusqueda" type="text"> <br /> <input type="submit" value="Buscar"> </form> </body> Acceso a Mysql desde PHP </html>
25/02/2013
<html> <head> <title>Resultado de la bsqueda en Catlogo</title> </head> <body> <h1>Resultado de la bsqueda en Catlogo</h1> <?php // create short variable names $tipobusqueda=$_POST['tipobusqueda']; $valorbusqueda=$_POST['valorbusqueda']; $valorbusqueda= trim($valorbusqueda); if (!$tipobusqueda || !$valorbusqueda) { echo 'No ha especificado los valores de bsqueda. Por favor regrese e intntelo de nuevo.'; exit; } if (!get_magic_quotes_gpc()) { $tipobusqueda = addslashes($tipobusqueda); $valorbusqueda = addslashes($valorbusqueda); } @ $db = new mysqli('localhost', 'root', '', 'biblio'); //mysqli("localhost", "user", "password", "database"); if (mysqli_connect_errno()) { echo 'Error: No se pudo conectar con la base de datos. Intntelo ms tarde.'; exit; Acceso
} $query = "select autor, isbn, titulo,precio from libros where ".$tipobusqueda." like '%".$valorbusqueda."%'"; $result = $db->query($query); $num_results = $result->num_rows; echo '<p>Nmero de libros encontrados: '.$num_results.'</p>'; for ($ ($i=0; ; $i $ <$num_results; $ ; $i++) $ ) { $row = $result->fetch_assoc(); echo '<p><strong>'.($i+1).'. Ttulo: '; echo htmlspecialchars(stripslashes($row['titulo'])); echo '</strong><br />Autor: '; echo stripslashes($row['autor']); echo '<br />ISBN: '; echo stripslashes($row['isbn']); echo '<br />Precio: '; echo stripslashes($row['precio']); echo '</p>'; } $result >free(); $result->free(); $db->close(); ?> </body> </html>
5 5
25/02/2013
25/02/2013
1. Comprobar los datos que provienen del usuario (cont.) Se tiene que validar si los datos vienen con las comillas (quotes) automticamente o no. no Es una directiva que se puede configurar a nivel de administracin. De no estar activada, hay que incluirle los slashes al campo: if (!get_magic_quotes_gpc()) { $tipobusqueda = addslashes($tipobusqueda); $valorbusqueda = addslashes($valorbusqueda); }
10
25/02/2013
11
2. Establecer la conexin a la Base de Datos. (cont.) Una vez se hace la conexin, se debe verificar que fue exitosa ya que el resto del cdigo depende de que la conexin se logre. Se coteja con el siguiente cdigo: if (mysqli_connect_errno()) { echo 'Error: Could not connect to database. Please try again later.'; exit; D ser cierto De i t el l resultado lt d } de esta funcin, significa que hubo problemas al tratar de conectarse a la base de datos.
12
25/02/2013
(cont. 2)
Se indica el siguiente cdigo para seleccionar la b base de d datos d t o si i se desea d cambiar bi de d base b de d datos:
//object oriented $db->select_db(dbname) o // procedural mysqli_select_db(db_resource, db_name)
13
25/02/2013
$row = $result->fetch_assoc(); o
// procedural
$row = mysqli_fetch_assoc($result);
Esto hace falta para poder acceder a los datos en el ciclo y que se puedan presentar al usuario:
25/02/2013
4. Obtener los resultados y presentarlos al usuario (cont. 2) Esto nos va a permitir mostrar los atributos como por ejemplo j p el ISBN: echo '<br />ISBN: '; echo stripslashes($row['isbn']); Con lo que completaremos el ciclo de acceso a los datos: for ($i=0; $i < $num_results; $i++) { // instrucciones }
17
Se puede liberar las instancias obtenidas utilizando el siguiente comando: $result->free(); ();// object oriented o mysqli_free_result($result); // procedural Finalmente podemos cerrar la conexin a la base de datos: $db->close(); // object oriented o mysqli_close($db) // procedural
18
25/02/2013
19
10
25/02/2013
Formulario De Altas
<html> <head> <title>Altas de libros</title> </head> <body> <h1>Altas de libros</h1> <form action="PHP08Insert.php" method="post"> <table border="0"> <tr> <td>ISBN</td> <td><input type="text" name="isbn" maxlength="125"
<tr>
size="20"></td>
<td>N de pginas</td> <td> <input type="text" name="paginas" maxlength="6" size="6"></td> </tr> <tr> <td>Encuadernacin</td> <td> <input type="text" text name= name="encuadernacion" encuadernacion maxlength= maxlength="20" 20
size="13"></td>
size="30"></td>
</tr> <tr> <td>Ao</td> <td> <input type="text" name="anio" maxlength=4" size=4"></td> </tr> <tr> <td>Precio</td> <td><input type="text" name="precio" maxlength="7" size="7"> </td> </tr> <tr> <td colspan="2"><input type="submit" value="Aadir"></td> </tr> /table </table> </form> </body> </html>
size="30"></td>
size="30"></td>
</tr>
21
Formulario De Altas
22
11
25/02/2013
if (!get_magic_quotes_gpc()) { $isbn = addslashes($isbn); $autor = addslashes($autor); $titulo = addslashes($titulo); $editorial = addslashes($editorial); $paginas $p g = intval($paginas); ($p g ); $encuadernacion = addslashes($encuadernacion); $anio = intval($anio); $precio = doubleval($precio); } @ $db = new mysqli('localhost', 'root', '', 'biblio'); if (mysqli_connect_errno()) { echo 'Error: No se puede conectar con la Base de Datos. Intntelo ms tarde.'; exit; } $query = 'insert into libros ' ."(autor, "(autor isbn, isbn titulo, titulo editorial, editorial paginas,encuadernacion,anio, paginas encuadernacion anio precio) values (" .'"' .$autor. '","' .$isbn. '","' .$titulo. '","' .$editorial .'",' .$paginas .',"' .$encuadernacion .'",' .$anio .',' .$precio .' );'; $result = $db->query($query); if ($result) echo $db->affected_rows.' libro aadido a la base de datos.'; $db->close(); ?> </body> 23 23 </html>
Resultado de la Ejecucin
24
12
25/02/2013
Ejercicio.
Aadir a la consulta la p posibilidad de modificar o borrar. Conjuntar toda la aplicacin con una pantalla inicial y mejorar el formato de todo.
26
13
25/02/2013
Referencias
http://www.elwebmaster.com/talleres/taller-de-phpprograma http://www.php.net/usage.php http://www.php.net http://zend.com http://www.mysql.com/why-mysql/whitepapers/performance.php p p /p p p http://www.securityspace.com http://www.phpya.com/ar
27
14