CURSO DE PHP

PROGRAMAS A UTILIZAR
  1. Netbeans Es un IDE(Integrated Development Environment->Entorno de Desarrollo Integrado), es un programa o entorno el cual nos permite crear o desarrollar aplicaciones(Web, Escritorio, Móviles, etc).
  2. Mysql (My Structured Query Language->Lenguaje de Consulta) es un gestor de base de datos, lo cual nos permite almacenar y administrar información.
  3. Xampp es un acrónimo, sus siglas significan: X: para cualquier sistema operativo. A: Apache, MariaDB/MySQL, PHP, Perl, es un servidor HTTP en software libre para cualquier plataforma.
  4. Navicat Es un programa lo cual nos facilita la administracion de nuestra base de datos
REQUISITOS BÁSICOS
  1. Conocimiento en Html
  2. Conocimiento en Css
  3. Conocimiento en JavaScript básico
CONCEPTOS BÁSICOS
  1. PHP->(Personal Home Page).
  2. PHP->(Hypertext Preprocessor).
Php es un lenguaje de programación simple, rapido y dinamico; Es dinámico por que dentro de un documento PHP se puede incluir otros elementos como HTML, CSS y JAVASCRIPT.
PHP es el lenguaje de lado servidor más extendido en la web. Nacido en 1994, se trata de un lenguaje de creación relativamente reciente, aunque con la rapidez con la que evoluciona Internet parezca que ha existido toda la vida. Es un lenguaje que ha tenido una gran aceptación en la comunidad de desarrolladores, debido a la potencia y simplicidad que lo caracterizan, así como al soporte generalizado en la mayoría de los servidores de hosting, hasta los más simples y económicos.
CREAR PROYECTO
IMG-estructura PHP
SINTAXIS
                
                    <?php
                .....................
                ?>
                
            
Ejemplo completo de una página PHP
                
                    <! doctype html>
                    <html lang="es">
                    <head>
                        <meta charset="UTF-8">
                        <title>Primera página PHP</title>
                    </head>
                    <body>
                        <h1>Esto es HTML</h1>
                        <?php
                        echo '<p>Esto viene de PHP</p>';
                        ?>
                    </body>
                    </html>
                
            
COMENTARIOS
Los comentarios son bloques de codigo que no son interpretados al ejecutar el programa
                
                    <?php
                #Comentario de una sola linea
                //Comentario de una sola linea
                /*
                Comentario de varios 
                bloques de linea
                */
                ?>
                
            
IMPRIMIR
En php se pueden imprimir de dos formas:
Echo: podemos imprimir varias cadenas
Print: podemos imprimir una sola cadena
                
                    <?php
                    echo 'Hola Mundo','Hello World';
                    print 'Hola Mundo';
                    ?>
                
            
VARIABLES
Las variables son un espacio en memoria que almacena un valor. Existen varios tipos de variables.
  • NUMERICOS
  • CADENA
En php las variables se declaran de forma simple y sencilla; para crear una variable se anteponer el símbolo o caracter de $
                
                    <?php                            
                    $nombre="juanito";
                    $edad=10;
                    $verdadero = true;
                    ?>
                
            
Tambien existen otro tipo de datos que son los Matrices, tablas o arrays
ARRAY O ARREGLOS
Un arreglo es una estructura, es decir es un conjunto de variables que se citan y manejan con un mismo nombre, y que permite además la utilización individual de sus elementos. Un arreglo es en resumen un conjunto de datos finito y del mismo tipo.
  • ARRAY COMUNES
  • ASOCIATIVOS
  • MULTIDIMENCIONALES
                
                    <?php
                    /* ARREGLOS COMUNES */
                    $semana = ["lunes", "martes", "miercoles", "jueves", "viernes"];
                    $semana2 = array("lunes", "martes", "miercoles", "jueves", "viernes");
                    echo $semana[0];
                    foreach ($semana as $value) {
                        echo $value;
                    }
                    /* ARREGLOS ASOCIATIVOS */
                    $amigo = array("nombre" => "juan", "edad" => 20, "correo" => "juan@gmail.com");
                    echo $amigo["edad"]
                    /* ARREGLOS MULTIDIMENCIONALES */
                    $amigos=array(array("juan",21), array("maria",18),array("pedro",20));
                    echo $amigos[1][0];
                    /* METODOS */
                    count($amigo)//contar valores;
                    $fruits = array("limón", "naranja", "plátano", "manzana");
                    sort($fruits)//ordena A-Z y 1-...;
                    rsort($fruits)//ordena Z-A y ...-1;
                    foreach ($fruits as $key => $val) {
                        echo "$key = $val\n";
                    }
                    ?>
                
            
Crear un arreglo con los nombres de los estudiantes y mostrar en forma descendente Z-A
Crear un arreglo que contenga numeros de 1-50 y mostrar en forma descendente 50-1
Cambio del tipo de las variables
En algunos casos es muy importante realizar estos cambios de tipo de las variables.
                
                    <?php
                    /* METODO 1 */
                    $num=10;
                    echo gettype($num);
                    $num="10";
                    echo gettype($num);
                    /* METODO 2 SETTYPE() */
                    //valores permitidos "integer" "double" "string" "array" "object"
                    $num = 10;
                    echo gettype($num);
                    settype($num, "string");
                    echo gettype($num);
                    /* METODO 3 CASTING */
                    $num = 10;
                    echo gettype($num);
                    $num = (string) $num;
                    echo gettype($num);
                    //valores permitidos
                    //(int), (integer) - fuerza a entero (integer)
                    //(real), (double), (float) - fuerza a número con decimales (coma flotante)
                    //(string) - fuerza a cadena (string)
                    //(array) - fuerza a array (array)
                    //(object) - fuerza a objeto (object)
                    //(unser) - fuerza a null
                    //(binary) - fuerza a "binary string"
                    ?>                        
                
            
OPERADORES
Un operador nos permite realizar una operación entre uno o más valores.
OPERADORES ARITMÉTICOS
                
                    <?php
                    //  + Suma
                    //  - Resta
                    //  * Multiplicación
                    //  / División
                    //  % Módulo (resto de la división)
                    //  ** Exponenciación (2 ** 3, elevar 2 a la tercera potencia)
                    $a = 10;
                    $b = 20;
                    echo ($a + $b)//30;
                    ?>                        
                
            
OPERADORES DE ASIGNACIÓN
                
                    <?php
                    //  += Suma y asignación
                    //  -= Resta y asignación
                    //  *= Multiplicación y asignación
                    //  /= División y asignación
                    //  %= Módulo y asignación
                    //  .= Concatenación y asignación
                    $a = 10;
                    $a += $a;
                    echo $a;//20

                    $cadena = "Hola ";
                    echo $cadena .= "mundo"; //"hola mundo"
                    ?>                        
                
            
OPERADORES DE COMPARACIÓN
                
                    <?php
                    //  == Comprueba si son iguales
                    //  != Comprueba si son distintos
                    //  === Comprueba si son iguales y de exactamente el mismo tipo
                    //  !== Comprueba si son distintos o de distinto tipo
                    //  <> Diferente (igual que !=)
                    //  < Menor qué, comprueba si un valor es menor que otro
                    //  > Mayór qué
                    //  <= Menor o igual
                    //  >= Mayor o igual
                    //  <=> Comparador de orden. (PHP 7)
                    //  ?? uno o el otro (PHP 7)
                    $a = 20;
                    $b = 30;
                    if($a < $b) {
                        echo "$a es menor que $b";
                    }
                    ?>                        
                
            
OPERADORES LÓGICOS
                
                    <?php
                    //  and ->Operación lógica "y", será verdadero si ambos son verdaderos.
                    //  or  ->Operación lógica "o", será verdadero si uno de ellos es verdadero
                    //  xor ->Operación lógica "xor", será verdadero si uno de ellos es verdadero, pero no ambos.
                    //  !   ->Operación de negación, si era verdadero pasa a falso y viceversa.
                    //  &&  ->Operación lógica "y"
                    //  ||  ->Operación lógica "o"
                    $a = true;
                    $b = false;
                    if ($a && $b == true) {
                        echo "$a y $b son los dos verdaderos";
                    } else {
                        echo "o uno de $a o $b son falsos, o los dos son falsos";
                    }
                    ?>                        
                
            
OPERADORES DE INCREMENTO
                
                    <?php
                    //  ++$a Pre-incremento
                    //  $a++ Post-incremento
                    //  --$a Pre-decremento
                    //  $a-- Post-decremento
                    $a = 3;
                    $b = ++$a;
                    echo "\$a vale $a y \$b vale $b"; //$a vale 4 y $b vale 4

                    $a = 3;
                    $b = $a++;
                    echo "\$a vale $a y \$b vale $b"; //$a vale 4 y $b vale 3
                    ?>                        
                
            
OPERADORES DE CADENA O CONCATENACIÓN
                
                    <?php
                    $saludo = "Hola";
                    $nombre = "como estas";
                    $saludoCompleto = $saludo ." ". $nombre;
                    echo $saludoCompleto
                    ?>                        
                
            
FUNCIONES
Las funciones son bloques de codigo que se ejecutan al ser invocados(llamados). Lo bueno de las funciones es que pueden ser utilizadas infinitas veces.
                
                    <?php
                    /* CON RETORNO */
                    function mensaje($mensaje = "") {
                        $res = "$mensaje";
                        echo $res//Hola como estas;
                    }                
                    $titulo = "Hola como estas";
                    mensaje($titulo);

                    /* SIN RETORNO */
                    function mensaje($mensaje = "") {
                        $res = "$mensaje";
                        return $res;
                    }                
                    $titulo = "Hola como estas";
                    echo mensaje($titulo)//Hola como estas;
                    ?>                        
                
            
Crear una función que sume dos números.
Crear una función que cuando envie mi edad me imprima si soy MAYOR O MENOR de edad.
CONDICIONALES
Las condicionales son utilizadas para tomar decisiones en función de que se cumpla o no una determinada condición.
                    
                        <?php
                        if (condicion) {
                        ...instrucciones...
                        } else {
                        ...instrucciones...
                        }
                        ?>
                    
                
Crear un programa que verifique si una persona es MAYOR o MENOR de edad >=18->MAYOR <18->MENOR
Crear un programa que verifique si una persona es HOMBRE o MUJER
BREAK Y CONTINUE
Break rompe el flujo de iteración. Termina la iteración.
Continue salta y continua con la siguiente iteración, no ejecuta las operaciones que estan por debajo.
                    
                        <?php
                        $semana = array("lunes", "martes", "miercoles", "jueves", "viernes");
                        foreach ($semana as $key => $value) {
                            if ($value == "martes") {
                                break;
                            }
                            echo $value;
                        }
                        
                        $semana = array("lunes", "martes", "miercoles", "jueves", "viernes");
                        foreach ($semana as $key => $value) {
                            if ($value == "martes") {
                                continue;
                            }
                            echo $value;
                        }
                        ?>
                    
            
ESTRUCTURAS DE CONTROL
Usar switch ayuda a simplificar el código y evita confusiones, ya que organiza en varias ramas el código que va a ser ejecutado.
                    
                        <?php
                        $sem = 1;
                        switch ($sem) {
                            case 1: ...instruccion1...
                            break;
                            case 2: ...instruccion2...
                            break;
                            default: ...instruccion3...
                            break;
                        }
                        ?>
                    
            
Crear un programa que muestre el MES segun el numero ingresado. 1->enero
Crear un programa que muestre el DIA DE LA SEMANA segun el numero ingresado. 1->lunes
BUCLES Y CICLOS
Los bucles o ciclos son secuencias de bloques de codigo que se ejecutarán repetidas veces hasta que la condicion deje de cumplirse.
                
                        <?php
                        for ($i = 0; $i <= 10; $i++) {
                        ...instrucciones...
                        }
                        
                        foreach ($variable as $value) {
                        ...instrucciones...
                        }
                        
                        while (condicion){
                        ...instrucciones...
                        }
                        
                        do{
                        ...instrucciones...
                        }
                        }while(condicion)
                        ?>
                                    
            
Crear un programa que muestre los numeros de 1-100. incrementado en 2
Crear un programa que los numeros pares de 1-100
TRY CATCH
*Los Try Catch se utilizan para poder prevenir los errores.
*Para mayoria de los casos el try catch se utiliza:
  1. Para recibir información de formularios
  2. Para realizaciones acciones hacia la BD
                                        
                    <?php
                    try {
                        $cliente = $_POST['txtcliente'];
                        $consulta = $conexion->query(" insert into alquiler(cliente) values('$cliente') ");
                        //$consulta devuelve TRUE o FALSE
                    } catch (Exception $e) {
                        //los errores se almacenan en $e.
                    }                        
                    ?>
                
            
COOKIES
Las cookies son unas informaciones almacenadas por un sitio web en el disco duro del usuario. Esta información es almacenada en un archivo tipo texto que se guarda cuando el navegador accede al sitio web.
Las cookies se pueden eliminar al poner una MAX-TIEMPO(fecha-máxima) anterior.
                                        
                    <?php
                    /* CREANDO UNA COOKIE NUEVA */
                    setcookie("persona", "Juan", time() + 60 * 60 * 24 * 365, "/");
                    /* ELIMINADO UNA COOKIE */
                    setcookie("persona", "Juan", time() + -1, "/");
                    //time() + (60 * 60 * 24 * 365) => DURA UN AÑO
                    /* OBTENER UNA COOKIE */
                    echo $_COOKIE["persona"]                      
                    ?>
                
            
FUNCIONES O MÉTODOS MAS USADOS
En este apartado se muestra algunos funciones o métodos mas utilizados en PHP.
                                        
                    <?php
                    $numero=10.555;        
                    echo round($numero);//redondear un número
                    echo rand(10, 50);//número aleatorio
                    echo ceil($numero);//siempre redondea al numero siguiente(solo si tiene decimal > 0)
                    echo M_PI;//valor de PI
                    /* OJO: no olvides poner el formato del Pais */
                    echo date("Y-m-d h:i:s");//fecha y hora actual
                    header("https://www.google.com")//redirigir a google
                    error_reporting(0);//no mostrar errores
                    ?>
                
            
CONEXION BD
                
                    <?php
                    $conexion=new mysqli('localhost','usuario','clave','bd_nombre','puerto');
                    $conexion->set_charset("utf8");
                    date_default_timezone_set('America/Lima');
                    ?>
                
            
VALIDACIONES
                                        
                    <?php
                    if (!empty($_POST['txthabitacion']) and !empty($_POST['txtcliente'])) {
                        ..........
                    }else{
                        ..........
                    }
                    ?>
                
            
CONSULTAS SQL
                
                    <?php
                    include './Recurso_conexion_bd.php';
                    $sql = $conexion->query("select * from usuario");
                    while ($datos = $sql->fetch_object()) {
                    ......$datos->id.......
                    }
                    ?>
                
            
METODOS GET Y POST
GET-> Los datos enviados se muestran en la URL.
POST-> Los datos enviados NO se muestran en la URL. Son enviados de forma oculta en el cuerpo de la pagina.
                                
                <?php
                /* POST */
                if (!empty($_POST['btnalquilar'])) {
                    ............
                }else{
                    ............
                }

                /* GET */
                if (!empty($_GET['btnalquilar'])) {
                    ............
                }else{
                    ............
                }
                ?>
            
        
ENVIAR IMAGEN A LA BD DESDE UN FORMULARIO
PASO 01: el formulario debe debe llevar el atributo enctype
                
                    <?php
                    <form method="POST" enctype="multipart/form-data">
                    </form>
                    ?>
                
            
PASO 02: Recibir la imagen enviada del formulario para registrar en la BD
                
                    <?php
                    $foto = addslashes(file_get_contents($_FILES['foto']['tmp_name']));
                    ?>
                
            
PASO 03: Mostrar en pantalla la imagen
                
                    <?php
                    <img src="data:image/jpg;base64,<?= base64_encode($datos->foto) ?>"/>
                    ?>
                
            
AJAX EN PHP
REQUISITOS
JQUERY
RELLENAR SELECT A PARTIR DE OTRO SELECT
                
                    <script type="text/javascript">
                        $('#val').change(function() {
                        recargarLista();
                        });
                    </script>
                    <script type="text/javascript">
                        function recargarLista() {
                            $.ajax({
                                type: "POST",
                                url: "ajax/Datos.php",
                                data: "cod=" + $('#tipo').val(),
                                success: function(q) {
                                    $('#habi').html(q);
                                }
                            });
                        }        
                    </script>
                
            
ENVIAR DATOS DE UN FORMULARIO
                
                    <script type="text/javascript">
                        $('#val').change(function() {
                            recargarForm();
                        });
                    </script>
                    <script type="text/javascript">
                        function recargarForm() {
                            var fecha_i = document.getElementById('txtfecha_i').value;
                            var fecha_s = document.getElementById('txtfecha_s').value;
                            var precio = document.getElementById('txtprecio_i').value;
                            var tipo = document.getElementById('tipo').value;
                            var valor = 'fecha_i=' + fecha_i + '&fecha_s=' + fecha_s +
                            '&precio=' + precio + '&tipo=' + tipo;
                            $.ajax({
                                type: "POST",
                                url: "ajax/Datos.php",
                                data: valor,
                                success: function(q) {
                                    $('#res').html(q);
                                }
                            });
                        }    
                    </script>
                
            
SESIONES
GUARDAR DATOS EN SESION
OJO : es muy importante que los session_start(); estén al inicio del documento
                
                    <?php
                    session_start();
                    $_SESSION['id'] = $datos->id_usuario;
                    $_SESSION['tipo'] = $datos->tipo_usuario;
                    ?>
                
            
VER DATOS DE LA SESION
                
                    <?php
                    session_start();
                    $codigo = $_SESSION['id'];
                    ?>
                
            
ELIMINAR SESION
                
                    <?php
                    session_destroy();
                    header('location:../login2/Login.php');
                    ?>
                
            
HEADERS
Los header se utiliza para redireccionar
                
                    <?php
                    header('location:Inicio.php');                        
                    ?>
                
            
INCLUDE Y REQUIRE
Si el archivo llamado no existe, INCLUDE sólo da un warning, y sigue ejecutando
Si el archivo llamado no existe, REQUIRE produce un error e interrumpe el flujo de ejecución.
                
                    <?php
                    include './general/Topbar.php';
                    require './general/Topbar.php';                                               
                    ?>
                
            
CAMBIAR VERSION DE PHP
    • En LARAGON
    • NO INICIAR LARAGON
    • Abrir menu en LARAGON->PHP->VERSION->AGREGAR VERSION PHP
    • Descargar aqui PHP
    • OJO: No descargar NTS(Non Thread Safe)
    • Descomprime y copia toda la carpeta en "C:\laragon\bin\php"
    • Reiniciar LARAGON
    • Abrir menu en LARAGON->PHP->CAMBIA DE VERSION
    • Listo
    • En XAMPP
    • NO INICIAR XAMPP
    • Descargar aqui PHP
    • OJO: No descargar NTS(Non Thread Safe)
    • Lo descomprimimos y renombramos la carpeta como "php"
    • Abrimos la carpeta:“C:\xampp“
    • Localizamos la carpeta “php” y la renombramos por “php_old“
    • Movemos la carpeta “php” con la nueva versión a la carpeta de la instalación de Xampp (“C:\xampp“)
    • Entramos en “php_old” y copiamos el archivo “php.ini” en la nueva carpeta “php“
    • Localizamos la carpeta “apache” y la duplicamos creando una copia. Podemos cambiar el nombre y poner “apache_old” o dejarlo como copia
    • Volvemos a la carpeta “php” y seleccionamos sólo los archivos sueltos, dejando las carpetas sin marcar. Los copiamos y los pegamos dentro de la carpeta “apache“. Si nos pide remplazar los archivos, decimos que sí a todos
    • Abrir y MODIFICAR "C:\xampp\apache\conf\extra\httpd-xampp.conf"
    • Con la herramienta reemplazar-> buscar: php5-> reemplazar: php7-> Reemplazar todo
CAMBIAR VERSION DE MYSQL
    • En LARAGON
    • NO INICIAR LARAGON
    • Abrir menu en LARAGON->MYSQL->VERSION->AGREGAR VERSION MYSQL
    • Descargar aqui MYSQL
    • Descargar aqui MYSQL ULTIMA VERSION
    • Descomprime y copia toda la carpeta en "C:\laragon\bin\mysql"
    • Reiniciar LARAGON
    • Abrir menu en LARAGON->MYSQL->CAMBIA DE VERSION
    • Listo
    • En XAMPP
INSTALAR IMAGICK EN LARAGON
    • En LARAGON
      • INSTALACION Y CONFIGURACION
      • Abra el archivo ZIP de Imagick y COPIE el archivo llamado php_imagick.dll
      • PÉGALO EN C:\laragon\bin\php\php-8.1.7-Win32-vs16-x64\ext
      • Abra el archivo ZIP de Imagick ORDENAR por tipo
      • COPIA LOS ARCHIVOS con el prefijo CORE_*y el sufijo.dll
      • COPIA LOS ARCHIVOS con el prefijo IM_MOD_*y el sufijo.dll
      • PEGALO EN C:\laragon\bin\apache\httpd-2.4.47-win64-VS16\bin (162 Arch.)
      • Abrir php.ini en C:\laragon\bin\php\php-8.1.7-Win32-vs16-x64
      • Agregar la extension -> extension=php_imagick.dll (imagen 9)
      • Guarda y reinicia Laragon
    • En XAMPP
CONECTRASE A UNA BD(mysql hosting) DESDE LOCALHOST
    • En tu Hosting
    • Ir a MySql
    • MySql Remoto
    • Agregar una IP
    • ejemplo (%.%.%.%)
    • Pasos
    • En tu proyecto local
                                       
                                           <?php
                                           $conexion = new mysqli('162.55.131.89', 'wiaycom_mood276', '6fMq6qi6kx7E', 'wiaycom_sistema_hospedaje2');                                   
                                           ?>
                                       
                                   
OTROS COMANDOS PHP
FILTRAR EL REPORTE DE ERRORES
                                
                                    <?php
                                    error_reporting(0);
                                    ?>
                                
                            
CONVERTIR CADENA EN FECHA (STRING A DATE)
                                    
                                        <?php
                                        $fechaR = DateTime::createFromFormat('d/m/Y', $datos5->fecha_entrada);//aqui va el formateo como esta tu fecha
                                        $fechaReporte = $fechaR->format('Y-m-d');//aqui pon el nuevo formato
                                        echo $fechaReporte;
                                        ?>
                                    
                                
FECHA
                                
                                    <?php
                                    $date = date('d/m/Y');
                                    ?>
                                
                            
SELECT AUTOMATICO
                                
                                    <select>
                                        <option <?= $datos7->sexo == 'm' ? 'selected' : '' ?> value="m">Varon</option>
                                        <option <?= $datos7->sexo == 'f' ? 'selected' : '' ?> value="f">Mujer</option>
                                    </select>
                                
                            
                                
                                    <select>
                                        <option <?= $datos->id_tipo == $datos7->tipo ? 'selected' : '' ?> value="<?= $datos->id_tipo ?>"><?= $datos->nombre ?></option>
                                    </select>
                                
                            
BOTON EDITAR Y ELIMINAR
                                
                                    <?php
                                    <a href="#editar<?= $datos7->usuario ?>">EDITAR</a>
                                    <a href="Usuario.php?elimin=<?= $datos7->id_usuario ?>" onclick="return confirmar_eliminar()">ELIMINAR</a>
                                    MODAL-EDITAR ->
                                    <div id="editar<?= $datos7->usuario ?>">
                                    ?>
                                
                            
NOTIFICACIONES TOAST RECURSOS
CSS
JQUERY
JS
                                        
                    <script>                            
                        //success-warning-info-error
                        toastr.error('Error al modificar foto', 'ERROR');
                    </script>
                
            
ACTUALIZAR LA URL PARA EVITAR INYECCION DE DATOS
                
                    <script>
                        (function () {
                            var not = function () {
                                window.history.replaceState(null, null, window.location.pathname);
                            //CON PARAMETROS//
                                window.history.replaceState(null, null, window.location.pathname+"?cod=<?= $codigo ?>");
                            };
                            setTimeout(not, 0);
                        }());
                    </script>                        
                
            
API REST
config/CONEXION BD
                                
                                    <?php
                                    class Conectar
                                    {
                                        protected $dbh;
                                        protected function Conexion()
                                        {
                                            try {
                                                $conectar = $this->dbh = new PDO("mysql:local=localhost;dbname=andercode_webservice", "root", "");
                                                return $conectar;
                                            } catch (Exception $e) {
                                                print "¡Error BD!: " . $e->getMessage() . "<br/>";
                                                die();
                                            }
                                        }

                                        public function set_names()
                                        {
                                            return $this->dbh->query("SET NAMES 'utf8'");
                                        }
                                    }
                                    ?>
                                
                            
models/Categoria.php
                                
                                    <?php
                                    class Categoria extends Conectar
                                    {
                                        public function get_categoria()
                                        {
                                            $conectar = parent::conexion();
                                            parent::set_names();
                                            $sql = "SELECT * FROM tm_categoria WHERE est = 1";
                                            $sql = $conectar->prepare($sql);
                                            $sql->execute();
                                            return $resultado = $sql->fetchAll(PDO::FETCH_ASSOC);
                                        }

                                        public function get_categoria_x_id($cat_id)
                                        {
                                            $conectar = parent::conexion();
                                            parent::set_names();
                                            $sql = "SELECT * FROM tm_categoria WHERE est=1 AND cat_id = ?";
                                            $sql = $conectar->prepare($sql);
                                            $sql->bindValue(1, $cat_id);
                                            $sql->execute();
                                            return $resultado = $sql->fetchAll(PDO::FETCH_ASSOC);
                                        }

                                        public function insert_categoria($cat_nom, $cat_obs)
                                        {
                                            $conectar = parent::conexion();
                                            parent::set_names();
                                            $sql = "INSERT INTO tm_categoria(cat_id,cat_nom,cat_obs,est) VALUES (NULL,?,?,'1');";
                                            $sql = $conectar->prepare($sql);
                                            $sql->bindValue(1, $cat_nom);
                                            $sql->bindValue(2, $cat_obs);
                                            $sql->execute();
                                            return $resultado = $sql->fetchAll(PDO::FETCH_ASSOC);
                                        }

                                        public function update_categoria($cat_id, $cat_nom, $cat_obs)
                                        {
                                            $conectar = parent::conexion();
                                            parent::set_names();
                                            $sql = "UPDATE tm_categoria set
                                                    cat_nom = ?,
                                                    cat_obs = ?
                                                    WHERE
                                                    cat_id = ?";
                                            $sql = $conectar->prepare($sql);
                                            $sql->bindValue(1, $cat_nom);
                                            $sql->bindValue(2, $cat_obs);
                                            $sql->bindValue(3, $cat_id);
                                            $sql->execute();
                                            return $resultado = $sql->fetchAll(PDO::FETCH_ASSOC);
                                        }

                                        public function delete_categoria($cat_id)
                                        {
                                            $conectar = parent::conexion();
                                            parent::set_names();
                                            $sql = "UPDATE tm_categoria set
                                                    est = '0'
                                                    WHERE
                                                    cat_id = ?";
                                            $sql = $conectar->prepare($sql);
                                            $sql->bindValue(1, $cat_id);
                                            $sql->execute();
                                            return $resultado = $sql->fetchAll(PDO::FETCH_ASSOC);
                                        }
                                    }
                                    ?>
                                
                            
controller/categoria.php
                                
                                    <?php
                                    header('Content-Type: application/json');
                                    header("Access-Control-Allow-Origin: *");

                                    require_once("../config/conexion.php");
                                    require_once("../models/Categoria.php");
                                    $categoria = new Categoria();
                                    $body = json_decode(file_get_contents("php://input"), true);


                                    switch($_GET["data"]){

                                        case "GetAll":
                                            $datos=$categoria->get_categoria();
                                            echo json_encode($datos);
                                        break;

                                        case "GetId":
                                            $datos=$categoria->get_categoria_x_id($body["cat_id"]);
                                            echo json_encode($datos);
                                        break;

                                        case "Insert":
                                            $datos=$categoria->insert_categoria($body["cat_nom"],$body["cat_obs"]);
                                            echo json_encode("Insert Correcto");
                                        break;

                                        case "Update":
                                            $datos=$categoria->update_categoria($body["cat_id"],$body["cat_nom"],$body["cat_obs"]);
                                            echo json_encode("Update Correcto");
                                        break;

                                        case "Delete":
                                            $datos=$categoria->delete_categoria($body["cat_id"]);
                                            echo json_encode("Delete Correcto");
                                        break;
                                    }
                                    ?>
                                
                            
RUTAS
                                
                                    http://localhost:8080/PROYECTOS-PHP/WEB-SERVICE/controller/categoria.php?data=GetAll

                                    http://localhost:8080/PROYECTOS-PHP/WEB-SERVICE/controller/categoria.php?data=GetId
                                    en RAW:
                                    {
                                        "cat_id":1
                                    }

                                    http://localhost:8080/PROYECTOS-PHP/WEB-SERVICE/controller/categoria.php?data=Insert
                                    en RAW:
                                    {
                                        "cat_nom": "Computadoras",
                                        "cat_obs": "Observación computadoras",
                                        "est": "1"
                                    }

                                    http://localhost:8080/PROYECTOS-PHP/WEB-SERVICE/controller/categoria.php?data=Update
                                    en RAW:
                                    {
                                        "cat_id": 13,
                                        "cat_nom": "laptops",
                                        "cat_obs": "Observación laptops",
                                        "est": "1"
                                    }

                                    http://localhost:8080/PROYECTOS-PHP/WEB-SERVICE/controller/categoria.php?data=Delete
                                    en RAW:
                                    {
                                        "cat_id": 13
                                    }