martes, 25 de febrero de 2014

PHP y MySQL: operaciones básicas

Tengo esta tabla llamada Vacante con estos campos:
Tabla
Y le haremos las operaciones básicas: Alta, Baja, Modificaciones y consultas.

Conexión a nuestra base de datos

Teniendo ya creada la base de datos, nos hacemos de un archivo con los datos de para la conexión. Esto es útil por  que nos ahorra andar repitiendo código.
  1. configuracion.php
  2. <?php
  3. //Datos del servidor y base de datos
  4. $server="tuservidor";
  5. $username="usuario_BD";
  6. $password="contrasenna";
  7. $database_name="nombre_BD";
  8. //Establecemos la conexión con el servidor
  9. $conexion=mysql_connect($server, $username, $password)
  10. or die("Problemas al tratar de establecer la conexion");
  11. //Seleccionamos la base de datos
  12. $bd_sel=mysql_select_db($database_name) or die("Problemas al seleccionar la base de datos");
  13. ?>
Llenamos con los datos que son nuestros y estamos listos para lo primero: Insertar.

Insertar (Altas)

Ésta parte consta de 2 archivos. Uno le puse el nombre index.php, en el cual se introducen datos en un formulario y se envían a otro llamado guardar.php. quien toma todos los datos y hace el query indicado para registrar los datos.
index.php
  1. <?php
  2. <!DOCTYPE HTML>
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  6. <title>Test Vacante con Vicente Zag
  7. </title>
  8. </head>
  9. <body>
  10. <h1>CRUD BASICO PHP</h1><hr>
  11. <form name="datos" id="datos" method="post" action="guardar.php" >
  12. Llave primaria
  13. <br/><input name="id" /><br/>
  14. Descripción
  15. <br/><input name="descripcion" /><br/>
  16. tiempo  <br/>
  17. <input name="tiempo" /> <br/>
  18. Salario<br/>
  19. <input name="salario" /><br/>
  20. Teléfono<br/>
  21. <input name="telefono" /><br/>
  22. Email<br/>
  23. <input name="email" size="40" /><br/>
  24. Empresa
  25. <br/><input name="empresa" /><br/>
  26. Nombre del Puesto
  27. <br/><input name="nombre" /><br/>
  28. <br/>
  29. <input type="submit" name="Guardar" value="Guardar"/>
  30. </form>
  31. </body>
  32. <a href=consulta.html>Ver registros</a><a href=borrar.php>Borrar<a><
  33. a href=aleatorio.php>Mostrar 6 registros aleatoriamente<a>
  34. </html>
  35. ?>
guardar.php
  1. <?php
  2. $id=$_POST['id'];
  3. $descripcion=$_POST['descripcion'];
  4. $tiempo=$_POST['tiempo'];
  5. $salario=$_POST['salario'];
  6. $email=$_POST['email'];
  7. $telefono=$_POST['telefono'];
  8. $empresa=$_POST['empresa'];
  9. $nombre=$_POST['nombre'];
  10. include("configuracion.php");
  11. $query="select id from Vacante where id=".$id;
  12. $result=mysql_query($query) or die("Error en la instruccion SQL");
  13. if (mysql_num_rows($result) > 0) {
  14. echo "El registro ya se encuentra insertado </br>";
  15. echo "<a href=index.php>Atrás</a>";
  16. } elseif (mysql_num_rows($result) == 0) {
  17. $query="insert into Vacante(id,descripcion,tiempo,salario,email,telefono,empresa,nombre)
  18. values($id,'$descripcion','$tiempo',$salario,'$email',$telefono,'$empresa','$nombre')";
  19. $result=mysql_query($query) or die("Error ejecutar la instrucción SQL ".mysql_error());
  20. echo "Registro guardado<br/>";
  21. echo "<a href=index.php>Atras</a>";
  22. }
  23. ?>

Consultar (Mostrar todos los registros)

Esto es sencillo, mediante tablas vamos mostrando todos los registros que haya en nuestra BD. Importando el archivo de configuración.
NOTA: Vean que la última columna se agrega la opción Editar. Este es un enlace que toma el id del elemento y lo manda al archivo modidicar.php que veremos más adelante.
  1. consulta.html (puedes ponerle consulta.php, solo cambia los links al final de cada hoja)
  2. <html>
  3. <body>
  4. <?php
  5. include("configuracion.php");
  6. $query = "SELECT * FROM Vacante ORDER BY id";
  7. $result = mysql_query($query) or die("Error en la instruccion SQL");
  8. if ($row = mysql_fetch_array($result)){
  9. echo "<table border = '1'>";
  10. echo "<tr> ";
  11. echo "<td><b>id</b></td> ";
  12. echo "<td><b>Descripción</b></td> ";
  13. echo "<td><b>Tiempo</b></td> ";
  14. echo "<td><b>Salario</b></td> ";
  15. echo "<td><b>Email</b></td> ";
  16. echo "<td><b>Teléfono</b></td> ";
  17. echo "<td><b>Empresa</b></td> ";
  18. echo "<td><b>Nombre de Vacante</b></td> ";
  19. echo "</tr> ";
  20. do {
  21. echo "<tr> ";
  22. echo "<td>".$row["id"]."</td> ";
  23. echo "<td>".$row["descripcion"]."</td> ";
  24. echo "<td>".$row["tiempo"]."</td> ";
  25. echo "<td>".$row["salario"]."</td> ";
  26. echo "<td>".$row["email"]."</td> ";
  27. echo "<td>".$row["telefono"]."</td> ";
  28. echo "<td>".$row["empresa"]."</td>";
  29. echo "<td>".$row["nombre"]."</td> ";
  30. echo "<td><a href=modificar.php?id=".$row["id"].">Editar</a></td>";
  31. echo "</tr> ";
  32. } while ($row = mysql_fetch_array($result));
  33. echo "</table>";
  34. echo "</table> ";
  35. } else {
  36. echo "'Aún no hay datos que mostrar'";
  37. }
  38. ?>
  39. <a href=index.php>Insertar<a>
  40. <a href=borrar.php>Borrar<a>
  41. <a href=aleatorio.php>Mostrar 6 registros aleatoriamente<a>;
  42. </body>
  43. </html>

Eliminar (Baja)

Acá usaremos 2 archivos, uno muestra los registros en un <select>, es decir, una lista con los registros para seleccionar uno y luego borrarlo.
El otro archivo recibe qué registro borrar, lo hace, y muestra la leyenda de éxito.
nombre del archivo: borrar.php
  1. <HTML>
  2. <HEAD>
  3. <TITLE>Borrar1.php</TITLE>
  4. </HEAD>
  5. <BODY>
  6. <div align="center">
  7. <h1>Borrar un registro</h1>
  8. <br>
  9. <?
  10. include("configuracion.php");
  11. echo '<FORM METHOD="POST" ACTION="borrar2.php">Nombre de la Vacante<br>';
  12. //Creamos la sentencia SQL y la ejecutamos
  13. $query="Select nombre From Vacante Order By nombre";
  14. $result=mysql_query($query);
  15. echo '<select name="nombre">';
  16. while ($row=mysql_fetch_array($result))
  17. {echo '<option>'.$row["nombre"];}
  18. ?>
  19. </select>
  20. <br>
  21. <INPUT TYPE="SUBMIT" value="Borrar">
  22. <a href=aleatorio.php>Mostrar 6 registros aleatoriamente<a>;
  23. <a href=index.php>Insertar<a>;
  24. <a href=consulta.html>Eliminar<a>;
  25. </FORM>
  26. </div>
  27. </BODY>
  28. </HTML>
  1. nombre del archivo: borrar2.php
  2. <HTML>
  3. <HEAD>
  4. <TITLE>Borrar2.php</TITLE>
  5. </HEAD>
  6. <BODY>
  7. <?
  8. include("configuracion.php");
  9. $query="Delete From Vacante Where nombre = '".$_POST['nombre']."'";
  10. mysql_query($query);
  11. ?>
  12. <h1><div align="center">Registro Borrado</div></h1>
  13. <div align="center"><a href="/consulta.html">Ver los registros</a></div>
  14. </BODY>
  15. </HTML>

Modificar (Editar)

Acá usamos el UPDATE para modificar datos. Es muy parecido al archivo de insertar (index.php). De igual forma, muestra una lista para elegir el registro a modificar.
nombre del archivo: modificar.php
  1. <HTML>
  2. <HEAD>
  3. <TITLE>Modificar</TITLE>
  4. </HEAD>
  5. <BODY>
  6. <div align="center">
  7. <h1>Modificar un registro</h1>
  8. <br>
  9. <?
  10. include("configuracion.php");
  11. echo '<FORM METHOD="POST" ACTION="modificar2.php">Nombre<br>';
  12. $query="Select * From Vacante Order By nombre";
  13. $result=mysql_query($query);
  14. echo '<select name="nombre">';
  15. while ($row=mysql_fetch_array($result))
  16. {echo '<option>'.$row["nombre"];}
  17. echo '</select><br>Descripción<br><INPUT TYPE="TEXT" NAME="descripcion" ><br>';
  18. ?>
  19. Tiempo<br>
  20. <INPUT TYPE="TEXT" NAME="tiempo"><br>
  21. Salario<br>
  22. <INPUT TYPE="TEXT" NAME="salario"><br>
  23. Email<br>
  24. <INPUT TYPE="TEXT" NAME="email"><br>
  25. Teléfono<br>
  26. <INPUT TYPE="TEXT" NAME="telefono"><br>
  27. Empresa<br>
  28. <INPUT TYPE="TEXT" NAME="empresa"><br>
  29. <!--Nombre<br>
  30. <INPUT TYPE="TEXT" NAME="nombre"><br>-->
  31. <INPUT TYPE="SUBMIT" value="Modificar">
  32. </FORM>
  33. </div>
  34. </BODY>
  35. </HTML>
nombre del archivo: modificar2.php
  1. <HTML>
  2. <HEAD>
  3. <TITLE>Modificar</TITLE>
  4. </HEAD>
  5. <BODY>
  6. <?
  7. include("configuracion.php");
  8. $id=$_GET['id'];
  9. $descripcion=$_POST['descripcion'];
  10. $tiempo=$_POST['tiempo'];
  11. $salario=$_POST['salario'];
  12. $email=$_POST['email'];
  13. $telefono=$_POST['telefono'];
  14. $empresa=$_POST['empresa'];
  15. $nombre=$_POST['nombre'];
  16. echo "<p> Dato:".$descripcion." entrado</p>";
  17. echo "<p> id:".$id." entrado</p>";
  18. $query="UPDATE Vacante SET descripcion = '".$_POST['descripcion']."',
    tiempo= '".$_POST['tiempo']."', salario= '".$_POST['salario']."', 
    email = '".$_POST['email']."', telefono= '".$_POST['telefono']."',
    empresa= '".$_POST['empresa']."'  WHERE nombre = '$nombre'";
  19. $result=mysql_query($query) or die("Error ejecutar la instrucción SQL ".mysql_error());
  20. echo "Registro modificado<br/>";
  21. echo "<a href=consulta.html>Ver resultados</a>";
  22. echo "<a href=index.php>  Insertar Nuevo</a>";
  23. ?>
  24. </BODY>
  25. </HTML>

Bonus! (Mostrar 6 registros al azar)

Como un extra, el siguiente archivo mostrará 6 registros al azar (no es la forma más óptima, pero hace el trabajo bien con pocos registros).
Gracias al query  "SELECT* FROM Vacante ORDER BY RAND() limit 6"
nombre del archivo: aleatorio.php

  1. <html>
  2. <body>
  3. <?php
  4. include("configuracion.php");
  5. $query = "SELECT* FROM Vacante ORDER BY RAND() limit 6";
  6. $result = mysql_query($query) or die("Error en la instruccion SQL");
  7. if ($row = mysql_fetch_array($result)){
  8. echo "<table border = '1'>";
  9. echo "<tr> ";
  10. echo "<td><b>id</b></td> ";
  11. echo "<td><b>Descripción</b></td> ";
  12. echo "<td><b>Tiempo</b></td> ";
  13. echo "<td><b>Salario</b></td> ";
  14. echo "<td><b>Email</b></td> ";
  15. echo "<td><b>Teléfono</b></td> ";
  16. echo "<td><b>Empresa</b></td> ";
  17. echo "<td><b>Nombre de Vacante</b></td> ";
  18. echo "</tr> ";
  19. do {
  20. echo "<tr> ";
  21. echo "<td>".$row["id"]."</td> ";
  22. echo "<td>".$row["descripcion"]."</td> ";
  23. echo "<td>".$row["tiempo"]."</td> ";
  24. echo "<td>".$row["salario"]."</td> ";
  25. echo "<td>".$row["email"]."</td> ";
  26. echo "<td>".$row["telefono"]."</td> ";
  27. echo "<td>".$row["empresa"]."</td>";
  28. echo "<td>".$row["nombre"]."</td> ";
  29. echo "<td><a href=modificar.php?id=".$row["id"].">Editar</a></td>";
  30. echo "</tr> ";
  31. } while ($row = mysql_fetch_array($result));
  32. echo "</table>";
  33. echo "</table> ";
  34. } else {
  35. echo "'Aún no hay datos que mostrar'";
  36. }
  37. ?>
  38. <a href=index.php>Insertar<a>
  39. <a href=borrar.php>Borrar<a>
  40. </body>
  41. </html>

No hay comentarios:

Publicar un comentario