poo php carrito

Iniciado por asspero18, 23 Noviembre 2016, 09:47 AM

0 Miembros y 1 Visitante están viendo este tema.

asspero18

hola me aparece el siguiente mensaje de error intentando hacer un carrito de compras (que por cierto si tienen forma de ayudarme tirandome tips se los agradeceria): 

Notice: Undefined property: controladorproductos::$codigo in C:\xampp\htdocs\controlador.php on line 18

Fatal error: Call to a member function listar() on null in C:\xampp\htdocs\controlador.php on line 18



mis codigos:

conexion
<?php

class conexion{

     
//Atributos

private $server;
private $usuario;
private $password;
private $bd;


//Metodo

public function __construct(){
          
$this->server "localhost";
          
$this->usuario "root";
          
$this->password "";
          
$this->bd "carro_productos";

          
$con mysql_errno($this->server$this->usuario$this->password);
          if (
$con
          
mysql_select_db($this->bs$con);
          

}

   public function 
consultaSimple($sql){
   
$consulta mysql_query($sql);
   }

      
      public function 
consultaRetorno($sql){
      
      }


   } 




?>


productos
<?php

       
include_once("conexion.php");
       include_once(
"carrito.php");
       include_once(
"controlador.php");
       include_once(
"enrutador.php");
       include_once(
"index.php");
       include_once(
"inicio.php");
       




       class 
productos{

       
private $codigo;
       
private $producto;
       
private $descripcion;
       
private $precio;

       
private $con;

       }

?>


controlador

<?php

       
       
include_once("productos.php");
      
       



       class 
controladorproductos{
         private 
$producto;

         public function 
__construct(){
           
$this->productos = new productos();   
         }

         public function 
index(){
            
$resultado $this->codigo->listar();
            return 
$resultado;
         }
         public function 
eliminar($codigo){
            
$this->producto->set("codigo"$codigo);
            
$this->producto->eliminar();
         }
         public function 
ver($codigo){
            
$this->producto->set("codigo"$codigo);
            
$this->producto->ver();
         }

       }
?>


enrutador

<?php
include_once("conexion.php");
       include_once(
"carrito.php");
       include_once(
"controlador.php");
       include_once(
"enrutador.php");
       include_once(
"index.php");
       include_once(
"inicio.php");
       

class 
enrutador{
   public function 
vista($vista){
      switch (
$vista):
         case 
'añadir':
            include_once(
$vista '.php');
            break;
         
        endswitch;
      
   }

  public function 
validarGET($var){
if(empty(
$var)){
   include_once(
'inicio.php');
}else{
   return 
true;
}
  } 


    }


?>


index
<?php
        
include_once("conexion.php");
       include_once(
"carrito.php");
       include_once(
"controlador.php");
       include_once(
"enrutador.php");
       include_once(
"index.php");
       include_once(
"inicio.php");
       


?>


<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8"/>
   <title>Carrito</title>
</head>
<body>
     <h1>
        Carrito
     </h1>

     <section>
     <?php
      $enrutador 
= new enrutador();
      if(
$enrutador->validarGET($_GET['añadir'])){
        
$enrutador->vista($_GET['añadir']);
      }
      
      
?>
     
     </section>
</body>
</html>


inicio
<?php 
       
include_once("conexion.php");
       include_once(
"carrito.php");
       
       include_once(
"enrutador.php");
       include_once(
"index.php");
       include_once(
"inicio.php");
       

       include_once(
"controlador.php");

       
$controlador = new controladorproductos();
       
$resultado $controlador->index();
?>

<h3>pagina</h3>
<table>
<thead>
<th>codigo</th>
<th>producto</th>
<th>descripción</th>
<th>precio</th>
<th>acción</th>
</thead>
<tbody>
<?php while ($row mysql_fetch_array($resultado)): ?>

<tr>
<td><?php echo $row['codigo']; ?></td>
<td><?php echo $row['producto']; ?></td>
<td><?php echo $row['descripción']; ?></td>
<td><?php echo $row['precio']; ?></td>
</tr>
<?php endwhile; ?>
</tbody>
</table>



engel lex

el error es simple

CitarNotice: Undefined property: controladorproductos::$codigo in C:\xampp\htdocs\controlador.php on line 18

Fatal error: Call to a member function listar() on null in C:\xampp\htdocs\controlador.php on line 18

Código (php,18) [Seleccionar]
<?php

       
       
include_once("productos.php");
      
       



       class 
controladorproductos{
         private 
$producto;

         public function 
__construct(){
           
$this->productos = new productos();   
         }

         public function 
index(){
            
$resultado $this->codigo->listar();
            return 
$resultado;
         }
         public function 
eliminar($codigo){
            
$this->producto->set("codigo"$codigo);
            
$this->producto->eliminar();
         }
         public function 
ver($codigo){
            
$this->producto->set("codigo"$codigo);
            
$this->producto->ver();
         }

       }
?>


en la linea 18 estás llamando a un método no definido... nunca definiste "codigo" por ende no definiste "listar()" dentro de el

No hagas doble post, el otro tema fue borrado
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

asspero18

Cita de: engel lex en 23 Noviembre 2016, 10:06 AM
el error es simple

Código (php,18) [Seleccionar]
<?php

       
       
include_once("productos.php");
      
       



       class 
controladorproductos{
         private 
$producto;

         public function 
__construct(){
           
$this->productos = new productos();   
         }

         public function 
index(){
            
$resultado $this->codigo->listar();
            return 
$resultado;
         }
         public function 
eliminar($codigo){
            
$this->producto->set("codigo"$codigo);
            
$this->producto->eliminar();
         }
         public function 
ver($codigo){
            
$this->producto->set("codigo"$codigo);
            
$this->producto->ver();
         }

       }
?>


en la linea 18 estás llamando a un método no definido... nunca definiste "codigo" por ende no definiste "listar()" dentro de el

No hagas doble post, el otro tema fue borrado


lo siento por el doble post, que me recomendas poner entonces?

engel lex

tu eres quien estás programando y decides que es lo que va  :silbar:...

tienes que hacer "codigo" y darle la propiedad "listar()"... o borrar esa linea y olvidarte de eso...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.