Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO problema con metodo de consulta

Estas en el tema de problema con metodo de consulta en el foro de PHP en Foros del Web. Hola, tengo una clase una clase que hereda de la clase mysqli @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original class articulos extends mysqli { private $dbhost ...
  #1 (permalink)  
Antiguo 16/09/2013, 15:48
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
problema con metodo de consulta

Hola, tengo una clase una clase que hereda de la clase mysqli

Código PHP:
Ver original
  1. class articulos extends mysqli{
  2. private $dbhost='localhost';
  3. private $dbuser='root';
  4. private $dbpass='skar';
  5. private $dbname='blog';
  6.     public function __construct() {
  7.    
  8.         $con= new mysqli($this->dbhost,$this->dbuser,$this->dbpass,$this->dbname); 
  9.          parent::__construct($this->dbhost,$this->dbuser,$this->dbpass,$this->dbname);
  10.                if ($con->connect_errno) {
  11.                    die('Error de Conexión (' . $con->connect_errno . ') ' . $con->connect_error);
  12.         }
  13.     }
  14. }
quiero "portar" un script a poo el cual realiza una consulta e imprime los valores devueltos

Código PHP:
Ver original
  1. $sql2="SELECT * FROM categorias ORDER BY nombre ASC";
  2. if($result= $con->query($sql2)){
  3.    
  4. while($cat= $result->fetch_assoc()){
  5.     ?>
  6.     <li type="1">
  7.     <a id="categorias" href="categoria.php?cat=<?=$cat['id'];?>"><?=$cat['nombre'];?></a>
  8.     <hr width="80%" align="center" size="1" />
  9.     </li>
  10.  
  11. }
  12. $result->free();
  13. }
la duda o el problema es que me he partido la cabeza tratando de crear el metodo de esta forma pero no funciona

Código PHP:
Ver original
  1. public function mostrar_categorias(){
  2.         $sql="SELECT * FROM categorias ORDER BY nombre";
  3.         $result= $this->query($sql);
  4.         while($cat=$result->fetch_assoc()){
  5.             echo '<li type="1">
  6.                     <a id="categorias" href="categoria.php?cat='.$cat['id'].'">'.$cat['nombre'].'</a>
  7.                     <hr width="80%" align="center" size="1" />
  8.                     </li>';
  9.  
  10.         }
  11.     }
Código PHP:
Ver original
  1. $con= new articulos();
  2. $con->mostrar_categorias;
y me da este error

Código:
Notice: Undefined property: articulos::$mostrar_categorias in
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #2 (permalink)  
Antiguo 16/09/2013, 15:57
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: problema con metodo de consulta

Estas llamando a una propiedad de la clase no al método, me explico

Código PHP:
Ver original
  1. class demo{
  2.     public $propiedad = 'Hola mundo';
  3.    
  4.     public function metodo(){
  5.         echo "Hola mundo";
  6.     }
  7. }
  8.  
  9. $demo = new demo;
  10.  
  11. echo $demo->propiedad;
  12.  
  13. $demo->metodo();


Espero se entienda


Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.

Última edición por jonni09lo; 16/09/2013 a las 15:58 Razón: ortografía
  #3 (permalink)  
Antiguo 16/09/2013, 16:03
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: problema con metodo de consulta

gracias, vaya que me falta todavia por aprender :D
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.

Etiquetas: metodo, mysql, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:08.