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.- PHP - MySQL - Web. Todo en un archivo.
- 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 anterior: 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 (bd_unida.php)
http://kio4.esy.es/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";
$link = mysql_connect($db_host, $db_login, $db_pswd);
_________________________________________________
- 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: (bd_guardar.php, bd_borrar.php, bd_modificar.php, bd_consultar.php)
- Además los código de órdenes a MySQL se encontraban en esos archivos:
mysql_query ("INSERT INTO personas (Nombre, Edad, Ciudad) VALUES ('$nombre','$edad','$ciudad')");
mysql_query ("DELETE FROM personas WHERE Nombre='$nombre'");
mysql_query ("UPDATE personas SET Edad='$edad', Ciudad='$ciudad' WHERE Nombre='$nombre'");
$hacer = mysql_query ("SELECT * FROM personas WHERE Nombre='$nombre' ");
....................................................................................................................................................
- Ahora crearemos un archivo 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.
bd_unida.php
|
<html>
<body>
<form name="test" method="post" action="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) or die(mysql_error());
// 2.- CONEXION A LA BASE DE DATOS
mysql_select_db($db_name) or die(mysql_error());
/////////////////////////////// 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 = mysql_query($query);
mysql_close($link);
}
/////////////////////////////// BORRAR ////////////////////////////////////
if(isset($_POST['submit2'])){
$nombre = $_POST['nombre'];
$query="delete from personas where Nombre='$nombre'";
$result = mysql_query($query);
mysql_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 = mysql_query($query);
mysql_close($link);
}
////////////////////////////// CONSULTAR /////////////////////////////////////
if(isset($_POST['submit4'])){
$nombre = $_POST['nombre'];
// RECOGIDA DE DATOS DEL FORMULARIO
$nombre=$_POST['nombre'];
// SELECCIÓN
if ($nombre==''){
$hacer = mysql_query ("SELECT * FROM personas");
}
else {
$hacer = mysql_query ("SELECT * FROM personas WHERE Nombre='$nombre' ");
};
///////////////////////////////////////////////////////////////////////////////
// En los casos que hay SELECT y se debe enviar una respuesta actúa este código
$resultado = mysql_query("SHOW COLUMNS FROM personas");
$numerodefilas = mysql_num_rows($resultado);
if ($numerodefilas > 0) {
while ($rowr = mysql_fetch_row($hacer)) {
for ($j=0;$j<$numerodefilas;$j++) {
$en_csv .= $rowr[$j].", ";
}
$en_csv .= "\n<br>";
}
}
print $en_csv;
mysql_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/bd_unida_2.php
- Es decir, creamos el archivo bd_autentifica.php
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('bd_autentifica.php');
bd_unida_2.php
|
<html>
<body>
<form name="test" method="post" action="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('bd_autentifica.php');
$link = mysql_connect($db_host, $db_login, $db_pswd) or die(mysql_error());
// 2.- CONEXION A LA BASE DE DATOS
mysql_select_db($db_name) or die(mysql_error());
/////////////////////////////// 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 = mysql_query($query);
mysql_close($link);
}
/////////////////////////////// BORRAR ////////////////////////////////////
if(isset($_POST['submit2'])){
$nombre = $_POST['nombre'];
$query="delete from personas where Nombre='$nombre'";
$result = mysql_query($query);
mysql_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 = mysql_query($query);
mysql_close($link);
}
////////////////////////////// CONSULTAR /////////////////////////////////////
if(isset($_POST['submit4'])){
$nombre = $_POST['nombre'];
// RECOGIDA DE DATOS DEL FORMULARIO
$nombre=$_POST['nombre'];
// SELECCIÓN
if ($nombre==''){
$hacer = mysql_query ("SELECT * FROM personas");
}
else {
$hacer = mysql_query ("SELECT * FROM personas WHERE Nombre='$nombre' ");
};
///////////////////////////////////////////////////////////////////////////////
// En los casos que hay SELECT y se debe enviar una respuesta actúa este código
$resultado = mysql_query("SHOW COLUMNS FROM personas");
$numerodefilas = mysql_num_rows($resultado);
if ($numerodefilas > 0) {
while ($rowr = mysql_fetch_row($hacer)) {
for ($j=0;$j<$numerodefilas;$j++) {
$en_csv .= $rowr[$j].", ";
}
$en_csv .= "\n<br>";
}
}
print $en_csv;
mysql_close($link);
}
///////////////////////////////////////////////////////////////////
?>
|
- De esta manera los datos de autentificación estará en otro archivo y será más complicado.
__________________________________
__________________________________
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.");
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 = mysql_connect($db_host, $db_login, $db_pswd) or die("Fallo en el enlace.");
// 2.- CONEXION A LA BASE DE DATOS
mysql_select_db($db_name, $link) or die("Fallo en la conexion."); |
__________________________________
__________________________________
|