Como agregar y listar en un listview usando una services en php y android

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.

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

WhatsApp chat