Diferencia entre revisiones de «Usuario:ManuelRomero/php/smarty/producto»

De WikiEducator
Saltar a: navegación, buscar
Línea 31: Línea 31:
  
 
public static function obtieneProductos() {
 
public static function obtieneProductos() {
 +
//....
 +
 +
</source>
 +
 +
 +
  
  
        $sql = "SELECT cod, nombre_corto, nombre, PVP FROM producto;";
+
<!--      $sql = "SELECT cod, nombre_corto, nombre, PVP FROM producto;";
 
         $resultado = self::ejecutaConsulta ($sql);
 
         $resultado = self::ejecutaConsulta ($sql);
 
         $productos = array();
 
         $productos = array();
Línea 47: Línea 53:
 
     }
 
     }
 
</source>
 
</source>
 
+
-->
 
;La clase Producto.php
 
;La clase Producto.php
 
[[Archivo:producto.png]]
 
[[Archivo:producto.png]]
Línea 58: Línea 64:
 
     protected $nombre_corto;
 
     protected $nombre_corto;
 
     protected $PVP;
 
     protected $PVP;
   
+
</source>
 +
<!--   
 
     public function getcodigo() {return $this->codigo; }
 
     public function getcodigo() {return $this->codigo; }
 
     public function getnombre() {return $this->nombre; }
 
     public function getnombre() {return $this->nombre; }
Línea 73: Línea 80:
 
?>
 
?>
 
</source>
 
</source>
 +
-->
 
;productos.php
 
;productos.php
 
*Esta parte del código simplemente accede a la base de datos y obtiene todos los productos
 
*Esta parte del código simplemente accede a la base de datos y obtiene todos los productos
Línea 85: Línea 93:
 
// Recuperamos la información de la sesión
 
// Recuperamos la información de la sesión
 
session_start();
 
session_start();
 +
....
 +
</source>
 +
<!--
 +
  
 
// Y comprobamos que el usuario se haya autentificado, para evitar que puedan acceder directamente
 
// Y comprobamos que el usuario se haya autentificado, para evitar que puedan acceder directamente
Línea 148: Línea 160:
 
</html>
 
</html>
 
</source>
 
</source>
 +
-->

Revisión de 01:33 20 ene 2017



Probando el ejemplo

  • Puedes ver esta parte del ejercicio ejecutándose en la web:
http://www.manuel.infenlaces.com/TiendaLogin/login.php

Lista productos

  • Se trata de modificar tanto productos.php, como la plantilla productos.tpl, para obtener un listado de todos los productos
  • Para ello también añadiremos métodos a la clase DB.php.
  • A la vez crearemos la clase Producto.php para obtener de forma más cómoda cada producto a partir de cada fila de la consulta
  • Directamente vamos a escribir el código
DB.php
  • Debemos hacer una consulta que obtenga todos los productos
  • Para ello añadiremos el método pública obtieneProductos() en la clase DB.php que quedará con lo que tenía

DB2 .png

  • escribimos el código
<?php
require_once('Producto.php');
 
class DB {
 
//..... lo que había
 
/*======================obtieneProducto ()======================================
    Accion: obtiene un array con todos los productos de la bd.
    Parámetros: 
    Retorna  un array de objetos de productos con todos los productos
 * ***********************************************************************************************/  
 
public static function obtieneProductos() {
//....



La clase Producto.php

Producto.png Esta clase implementa los atributos de la tabla productos y la posibilidad de obtener cada uno de sus atributos

<?php
class Producto {
    protected $codigo;
    protected $nombre;
    protected $nombre_corto;
    protected $PVP;
productos.php
  • Esta parte del código simplemente accede a la base de datos y obtiene todos los productos
  • Los productos quedan disponibles para la plantilla en una variable $productos que es un array asociativo
  • el código
<?php
require_once('./../include/DB.php');
require_once('Smarty.class.php');
 
// Recuperamos la información de la sesión
session_start();
....