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!





