Buenas hoy veremos un nuevo tutorial y para esto partiremos de otros tutoriales ya antes hechos.
Hoy veremos como agregar y listar en un mismo listview usando una base de datos en mysql y android.
También te puede interesar.
Mostrar datos en un ListView extraido de una base de datos en Postgresql
llenar spinner en android desde una base de datos MySQL
Bien empezamos por la base de datos se llamara, spinner así lo llame la ves pasada ustedes pueden llamarle lista o como quieran y contendrá lo siguiente.
CREATE TABLE IF NOT EXISTS `frutas` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `nombre` varchar(90) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`) ); INSERT INTO `frutas` (`id`, `nombre`) VALUES (48, 'manzana'), (49, 'uva'), (50, 'papaya'), (51, 'mango');
Bueno ahora seguimos con nuestra webservice, tendrá la siguiente estructura.
crearemos primero la conexion.php
<?php define('DB_USERNAME', 'root'); define('DB_PASSWORD', '12345'); define('DB_HOST', 'localhost'); define('DB_NAME', 'spinner');
Ahora crearemos nuestra DbConnect.php
<?php /** * Connecting / disconnecting Database * * @author AndroidMorefast */ class DbConnect { private $conn; // constructor function __construct() { // conexion a la database $this->connect(); } // destructor function __destruct() { // cerrar la conexion $this->close(); } /** * Estableciendo database conexion * @return database handler */ function connect() { include_once dirname(__FILE__) . './conexion.php'; // conectando con mysql database $this->conn = mysql_connect(DB_HOST, DB_USERNAME, DB_PASSWORD) or die(mysql_error()); // seleccionar database mysql_select_db(DB_NAME) or die(mysql_error()); // returing conexion resource return $this->conn; } /** * cerrar database conexion */ function close() { // cerrar db conexion mysql_close($this->conn); } } ?>
Ahora nuestro listar.php
<?php include_once './DbConnect.php'; function getCategories(){ $db = new DbConnect(); // array para json $respuesta = array(); $respuesta["frutas"] = array(); // extraemos las frutas con la query $result = mysql_query("SELECT * FROM frutas"); while($row = mysql_fetch_array($result)){ // array temporal para crear una sola fruta $tmp = array(); $tmp["id"] = $row["id"]; $tmp["nombre"] = $row["nombre"]; array_push($respuesta["frutas"], $tmp); } // manteniendo cabecera de respuesta a JSON header('Content-Type: application/json'); // haciéndose echo al resultado en JSON echo json_encode($respuesta); } getCategories(); ?>
Ahora nuestro agregar.php
<?php include_once './DbConnect.php'; function agregar() { if (isset($_POST["nombre"]) && $_POST["nombre"] != "") { // variable respuesta array para json $respuesta = array(); $nombre = $_POST["nombre"]; $db = new DbConnect(); // mysql query $query = "INSERT INTO frutas(nombre) VALUES( '$nombre')"; $result = mysql_query($query) or die(mysql_error()); if ($result) { $respuesta["error"] = false; $respuesta["message"] = "nueva fruta creado con exito!"; } else { $respuesta["error"] = true; $respuesta["message"] = "Creacion de nueva fruta fallida!"; } } else { $respuesta["error"] = true; $respuesta["message"] = "Nombre de la fruta no se encuentra!"; } // echo json respuesta echo json_encode($respuesta); } agregar(); ?>
Dentro de la aplicacion android deben configurar la ip o dirección de su webservice dentro de MainActivity
Como de costumbre les dejare el archivo del código android, todo esta documentado, si tienen dudas al respecto me dejan un comentario.
Hola soy Alex Céspedes fundador de ANDROFAST, programo algunas cosas por diversión, me gusta aprender cosas nuevas y estoy pendiente de todo lo que tenga que ver con tecnología. Este blog lo cree para todas las personas que tengan dificultades en la programación, para ser sincero nunca fui bueno y reprobé algunos cursos de programación, pero mis ganas de aprender pudieron más. SI YO PUEDO TU PUEDES ANIMO!