|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
T Búsqueda en este sitio:


.

App inventor 2 en español
Cómo programar los teléfonos móviles con Android
mediante App inventor 2 - Juan Antonio Villalpando

--- PHP y MySQL en App Inventor 2 --

Volver al índice del tutorial de PHP y MySQL

____________________________

337_i.- PHP - MySQLi - Web. Todo en un archivo.

Presentación

- Este tutorial es una adaptación del anterior 337.- PHP MySQL Web. Todo en un archivo.

- Resulta que actualmente se suele instalar versiones nuevas de PHP (v5 o más) y MySQL (v4 o más) y los comandos de conexión con PHP han cambiado. Se puede seguir utilizando los comandos antiguos, pero al conectar con la base de datos saldrá un aviso de que la versión que estás utilizando está obsoleta:

Deprecated : mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/u798509677/public_html/bd_guardar.php on line 12

- Para evitar que salga ese aviso, al principio de las páginas PHP se pone esta línea:

error_reporting (E_ALL ^ E_NOTICE ^ E_DEPRECATED);

Ya no saldrá el aviso y podemos seguir trabajando con las versiones antiguas. La mayoría de estos tutoriales están hechos con la versión antigua de PHP, pero funcionan eficientemente.

- Sin embargo en este tutorial vamos a cambiar los códigos PHP y vamos a poner los códigos de la versión nueva de PHP.

- Por lo tanto este tutorial es la versión actulizada del visto en 335.- PHP MySQL Web.

- El guión del tutorial es un copia del anterior, los archivos cambiados ahora comienzan por i

i_bd_unida.php


i_bd_autentifica.php
i_bd_unida_2.php

- Antes los comandos eran de tipo mysql y ahora son de tipo mysqli

mysql_query ("DELETE FROM personas WHERE Nombre='$nombre'");

mysqli_query ($link, "DELETE FROM personas WHERE Nombre='$nombre'");

- Con el código actualizado no es necesario poner la línea error_reporting (E_ALL ^ E_NOTICE ^ E_DEPRECATED);

 

 

- Vamos a insertar datos en una base de datos y luego podremos actualizar, borrar, ver,... esos datos. Lo haremos desde una página web.

- El resultado de esta nueva forma es el mismo que el del tutorial: 335.- PHP MySQL Web, la diferencia es que en el anterior utilizamos 5 archivos:
(bd_principio.htm, bd_guardar.php, bd_borrar.php, bd_modificar.php, bd_consultar.php) y en este solo utilizamos un archivo para todo (i_bd_unida.php)

http://kio4.esy.es/i_bd_unida.php

 

- La base de datos tendrá estas referencias, que utilizaremos para comunicarnos con ella por PHP.

// 1.- IDENTIFICACION nombre de la base, del usuario, clave y servidor
$db_host="mysql.hostinger.es";

$db_name="u798509677_comun
";
$db_login="u798509677_juan
";
$db_pswd="contraseña";

_________________________________________________

- Vamos a insertar, borrar y actualizar registro.

- En el ejemplo del tutorial anterior 335.- PHP MySQL Web, teníamos un archivo PHP para cada acción: (i_bd_guardar.php, i_bd_borrar.php, i_bd_modificar.php, i_bd_consultar.php)

- Además los código de órdenes a MySQLi se encontraban en esos archivos:

mysqli_query ($link, "INSERT INTO personas (Nombre, Edad, Ciudad) VALUES ('$nombre','$edad','$ciudad')");

mysqli_query ($link, "DELETE FROM personas WHERE Nombre='$nombre'");

mysqli_query ($link, "UPDATE personas SET Edad='$edad', Ciudad='$ciudad' WHERE Nombre='$nombre'");

$hacer = mysqli_query ($link, "SELECT * FROM personas WHERE Nombre='$nombre' ");

....................................................................................................................................................

- Ahora crearemos un archivo i_bd_unida.php que contendrá el formulario y cada una de las órdenes anteriores.

_________________________________________________
1.- Gestión de la base en un solo archivo.

- Fíjate cómo distingimos los distintos botones, mediante submit1, submit2, submit3 y submit4.

i_bd_unida.php
<html>
<body>
<form name="test" method="post" action="i_bd_unida.php">
Nombre: <INPUT TYPE="text" NAME="nombre" value="<?php echo $nombre ?>"><br />
Edad: <input type="text" name="edad" value="<?php echo $edad ?>"><br />
Ciudad: <input type="text" name="ciudad" value="<?php echo $ciudad ?>"><br />
<INPUT TYPE="submit" name="submit1" value="Guardar">
<INPUT TYPE="submit" name="submit2" value="Borrar">
<INPUT TYPE="submit" name="submit3" value="Modificar">
<INPUT TYPE="submit" name="submit4" value="Ver">
</form>
</body>
</html>

<?php
// Juan Antonio Villalpando
// juana1991@yahoo.com 
// http://kio4.com
// error_reporting (E_ALL ^ E_NOTICE ^ E_DEPRECATED); // 1.- IDENTIFICACION nombre de la base, del usuario, clave y servidor $db_host="mysql.hostinger.es"; $db_name="u798509677_comun"; $db_login="u798509677_juan"; $db_pswd="contraseña"; // $link = mysql_connect($db_host, $db_login, $db_pswd); // 2.- CONEXION A LA BASE DE DATOS // mysql_select_db($db_name) or die(mysql_error()); $link = new mysqli($db_host, $db_login, $db_pswd, $db_name); /////////////////////////////// INSERTAR //////////////////////////////////// if(isset($_POST['submit1'])){ $nombre = $_POST['nombre']; $edad = $_POST['edad']; $ciudad = $_POST['ciudad']; $query="insert into personas (Nombre, Edad, Ciudad) values ('$nombre','$edad','$ciudad')"; $result = mysqli_query($link, $query); print("Datos agregados a la base."); mysqli_close($link); } /////////////////////////////// BORRAR //////////////////////////////////// if(isset($_POST['submit2'])){ $nombre = $_POST['nombre']; $query="delete from personas where Nombre='$nombre'"; $result = mysqli_query($link, $query); print("Datos borrados."); mysqli_close($link); } ////////////////////////////// MODIFICAR ///////////////////////////////////// if(isset($_POST['submit3'])){ $nombre = $_POST['nombre']; $edad = $_POST['edad']; $ciudad = $_POST['ciudad']; $query="update personas set Edad='$edad', Ciudad='$ciudad' WHERE Nombre='$nombre'"; $result = mysqli_query($link, $query); print("Datos modificados."); mysqli_close($link); } ////////////////////////////// CONSULTAR ///////////////////////////////////// if(isset($_POST['submit4'])){ $nombre = $_POST['nombre']; // RECOGIDA DE DATOS DEL FORMULARIO $nombre=$_POST['nombre']; // SELECCIÓN if ($nombre==''){ $hacer = mysqli_query ($link, "SELECT * FROM personas"); } else { $hacer = mysqli_query ($link, "SELECT * FROM personas WHERE Nombre='$nombre' "); }; /////////////////////////////////////////////////////////////////////////////// // En los casos que hay SELECT y se debe enviar una respuesta actúa este código $resultado = mysqli_query($link, "SHOW COLUMNS FROM personas"); $numerodefilas = mysqli_num_rows($resultado); if ($numerodefilas > 0) { while ($rowr = mysqli_fetch_row($hacer)) { for ($j=0;$j<$numerodefilas;$j++) { $en_csv .= $rowr[$j].", "; } $en_csv .= "\n<br>"; } } print $en_csv; mysqli_close($link); } /////////////////////////////////////////////////////////////////// ?>

- Un código parecido a este utilizaremos más adelante en App inventor y MySQL.

__________________________________
__________________________________
2.- Seguridad.

- El código PHP se realiza en el servidor web, es decir en el hosting, de tal manera que el usuario no lo ve. Consulta el código fuente de las páginas que llevan PHP, observarás que no traen el código.

- Sin embargo es una buena práctica poner los datos de autentificación de la Base de datos en otro archivo y luego incluirlo en el archivo .php principal.

- El efecto es el mismo:

http://kio4.esy.es/i_bd_unida_2.php

- Es decir, creamos el archivo i_bd_autentifica.php

i_bd_autentifica.php
<?php
// 1.- IDENTIFICACION nombre de la base, del usuario, clave y servidor
$db_host="mysql.hostinger.es"; $db_name="u798509677_comun"; $db_login="u798509677_juan"; $db_pswd="contraseña"; ?>

- Luego incluimos ese archivo en el código:
require_once('i_bd_autentifica.php');

i_bd_unida_2.php
<html>
<body>
<form name="test" method="post" action="i_bd_unida_2.php">
Nombre: <INPUT TYPE="text" NAME="nombre" value="<?php echo $nombre ?>"><br />
Edad: <input type="text" name="edad" value="<?php echo $edad ?>"><br />
Ciudad: <input type="text" name="ciudad" value="<?php echo $ciudad ?>"><br />
<INPUT TYPE="submit" name="submit1" value="Guardar">
<INPUT TYPE="submit" name="submit2" value="Borrar">
<INPUT TYPE="submit" name="submit3" value="Modificar">
<INPUT TYPE="submit" name="submit4" value="Ver">
</form>
</body>
</html>

<?php
// Juan Antonio Villalpando
// juana1991@yahoo.com 
// http://kio4.com
// error_reporting (E_ALL ^ E_NOTICE ^ E_DEPRECATED); // 1.- IDENTIFICACION nombre de la base, del usuario, clave y servidor require_once('i_bd_autentifica.php'); // 2.- CONEXION A LA BASE DE DATOS // mysql_select_db($db_name) or die(mysql_error()); $link = new mysqli($db_host, $db_login, $db_pswd, $db_name); /////////////////////////////// INSERTAR //////////////////////////////////// if(isset($_POST['submit1'])){ $nombre = $_POST['nombre']; $edad = $_POST['edad']; $ciudad = $_POST['ciudad']; $query="insert into personas (Nombre, Edad, Ciudad) values ('$nombre','$edad','$ciudad')"; $result = mysqli_query($link, $query); print("Datos agregados a la base."); mysqli_close($link); } /////////////////////////////// BORRAR //////////////////////////////////// if(isset($_POST['submit2'])){ $nombre = $_POST['nombre']; $query="delete from personas where Nombre='$nombre'"; $result = mysqli_query($link, $query); print("Datos borrados."); mysqli_close($link); } ////////////////////////////// MODIFICAR ///////////////////////////////////// if(isset($_POST['submit3'])){ $nombre = $_POST['nombre']; $edad = $_POST['edad']; $ciudad = $_POST['ciudad']; $query="update personas set Edad='$edad', Ciudad='$ciudad' WHERE Nombre='$nombre'"; $result = mysqli_query($link, $query); print("Datos modificados."); mysqli_close($link); } ////////////////////////////// CONSULTAR ///////////////////////////////////// if(isset($_POST['submit4'])){ $nombre = $_POST['nombre']; // RECOGIDA DE DATOS DEL FORMULARIO $nombre=$_POST['nombre']; // SELECCIÓN if ($nombre==''){ $hacer = mysqli_query ($link, "SELECT * FROM personas"); } else { $hacer = mysqli_query ($link, "SELECT * FROM personas WHERE Nombre='$nombre' "); }; /////////////////////////////////////////////////////////////////////////////// // En los casos que hay SELECT y se debe enviar una respuesta actúa este código $resultado = mysqli_query($link, "SHOW COLUMNS FROM personas"); $numerodefilas = mysqli_num_rows($resultado); if ($numerodefilas > 0) { while ($rowr = mysqli_fetch_row($hacer)) { for ($j=0;$j<$numerodefilas;$j++) { $en_csv .= $rowr[$j].", "; } $en_csv .= "\n<br>"; } } print $en_csv; mysqli_close($link); } /////////////////////////////////////////////////////////////////// ?>

- De esta manera los datos de autentificación estará en otro archivo y será más complicado entrar sin autentificarse.

__________________________________
__________________________________
3.- Fallo en la conexión.

- Podemos agregar el comando die, que nos informará cuando haya un fallo en la conexión con la base de datos.

mysql_select_db($db_name, $link) or die("Fallo en la conexion.");

i_bd_autentifica.php
<?php
// Juan Antonio Villalpando.
// KIO4.COM

// error_reporting (E_ALL ^ E_NOTICE ^ E_DEPRECATED); // 1.- IDENTIFICACION nombre de la base, del usuario, clave y servidor $db_host="mysql.hostinger.es"; $db_name="u798509677_comun"; $db_login="u798509677_juan"; $db_pswd="contraseña"; $link = new mysqli($db_host, $db_login, $db_pswd, $db_name); or die("Fallo en la conexión."); ?>

__________________________________
__________________________________

 

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información