Foros del Web » Programando para Internet » PHP »

resultados consulta ( PHP OBJETOS)

Estas en el tema de resultados consulta ( PHP OBJETOS) en el foro de PHP en Foros del Web. Es la primera vez que estoy trabajando con php orientado a objetos y no consigo devolver el resultado de una select simple. Warning: mysqli_query() expects ...
  #1 (permalink)  
Antiguo 27/03/2013, 17:05
 
Fecha de Ingreso: abril-2012
Mensajes: 42
Antigüedad: 12 años, 6 meses
Puntos: 1
resultados consulta ( PHP OBJETOS)

Es la primera vez que estoy trabajando con php orientado a objetos y no consigo devolver el resultado de una select simple.

Warning: mysqli_query() expects parameter 1 to be mysqli, object given in E:\xampp\htdocs\Servidor\blogPersonal\Script\Consu ltas.php on line 27
Error en la consulta

CLASE CONEXION

Código PHP:

<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of Conexion
 *
 * @author Jesus_Diaz
 */
class Conexion {

    function 
__construct() {
        
    }

    
// abrimos conexion cn la bd
    
public function conexion() {
        
define("hosting""localhost");
        
define("user""root");
        
define("pass""");
        
define("bd_name""bd_blog");

        
$mysqli = new mysqli(hostinguserpassbd_name);
        
/* comprueba la conexión */
        
if (mysqli_connect_errno()) {
            
printf("Connect failed: %s\n"mysqli_connect_error());
            exit();
        }
        
/* seleccionamos la bd a utilizar*/
        
$mysqli->select_db(bd_name);

        return 
$mysqli or die();
    }

    
// cerramos conexion con la bd
    
public function close() {
        
mysqli_close();
    }

}

?>

CLALSE CONSULTAS

Código PHP:

<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of Consultas
 *
 * @author Jesus_Diaz
 */
class Consultas {

    
// variable donde ugardamos la conexion abierta a la bd
    
private $db;

    
//constructor que inicializamos la conexion, es decir, 
    //la abrimos siempre para esta clase
    
function __construct() {
        require_once 
'Conexion.php';
        
$this->db = new Conexion();
        
$this->db->conexion();
    }

    public function 
listaCategoria() {
    
ERROR
      
[LEFT]  $query mysqli_query($this,"SELECT * FROM `categoria`") or die("Error en [/LEFT]la consulta");
        
$arrayCategoria mysqli_fetch_array($query);
        return 
$arrayCategoria;
    }

    public function 
listaProductos() {
        
    }

}

?>

CLASE APLICACION.PHP

Código HTML:
<body>
    <div class="cuerpo">
        <div class="body"> 
            
            <?php
            require_once 'Script/Consultas.php';
            $consulta = new Consultas();
            while ($row = $consulta->listaCategoria()) {
                $nombre = $row['nombre'];
                ?>
                <p> <?php echo 'Nombre: ' + $nombre ?> </p>
                <?php
            }
            ?>
        </div>
        <div class="footer"> 

        </div>
    </div>
</body>

  #2 (permalink)  
Antiguo 27/03/2013, 17:13
Avatar de rottenp4nx  
Fecha de Ingreso: octubre-2012
Ubicación: Santiago
Mensajes: 417
Antigüedad: 12 años, 1 mes
Puntos: 36
Respuesta: resultados consulta ( PHP OBJETOS)

Creo que es porque estas usando MySQLi OO y estructurado

Saludos
  #3 (permalink)  
Antiguo 27/03/2013, 17:17
 
Fecha de Ingreso: abril-2012
Mensajes: 42
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: resultados consulta ( PHP OBJETOS)

yaa, porque estoy utilizando la version mysql 5.3 de php porque en el api las anteriores ya estan obsoletas.

¿ Alguna idea ?
  #4 (permalink)  
Antiguo 27/03/2013, 17:23
Avatar de rottenp4nx  
Fecha de Ingreso: octubre-2012
Ubicación: Santiago
Mensajes: 417
Antigüedad: 12 años, 1 mes
Puntos: 36
Respuesta: resultados consulta ( PHP OBJETOS)

no lo digo es que instancias el objeto MySQLi y después ocupas funciones de MySQLi de forma estructurada. Puedes ocupar los métodos de dicho objeto

por ejemplo veo que usas mysql_query() cuando deberías usar $mysqli->query("select * from tabla");

Saludos
  #5 (permalink)  
Antiguo 27/03/2013, 17:33
 
Fecha de Ingreso: abril-2010
Ubicación: Saltillo Mexico
Mensajes: 83
Antigüedad: 14 años, 7 meses
Puntos: 4
Respuesta: resultados consulta ( PHP OBJETOS)

y si en lugar de esto:

$query = mysqli_query($this,"SELECT * FROM `categoria`")

haces

$query = $this->query("SELECT * FROM 'categoria' ")

que pasa?

según el error, no le llega el objeto de tipo mysqli en el primer parámetro.
Otra cosa que se me ocurre es poner:

$query = mysqli_query($this->db,"SELECT * FROM `categoria`")

Pero la verdad no se que pase. Pruebalo. Yo uso diferente las consultas, pero igual cada quien programa como se siente más cómodo.

Saludos.
  #6 (permalink)  
Antiguo 27/03/2013, 17:42
 
Fecha de Ingreso: abril-2012
Mensajes: 42
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: resultados consulta ( PHP OBJETOS)

De esta forma:

$query = mysqli_query($this->db,"SELECT * FROM `categoria`") or die("Error en la consulta");

Me da el mismo error, ya lo había probado

y tu forma, lo he visto que lo utilizan pero yo estoy en netbeans, y cuando doy control + space:

$query = $this-> me sale :

? db

listaCategoria
listaProductos

y el método query no me aparece.

ERROR: Call to undefined method Consultas::query()
  #7 (permalink)  
Antiguo 27/03/2013, 17:48
Avatar de rottenp4nx  
Fecha de Ingreso: octubre-2012
Ubicación: Santiago
Mensajes: 417
Antigüedad: 12 años, 1 mes
Puntos: 36
Respuesta: resultados consulta ( PHP OBJETOS)

El método es de la clase MySQLi, te recomiendo leer esto

http://www.php.net/manual/es/mysqli....statements.php

Saludos
  #8 (permalink)  
Antiguo 27/03/2013, 17:59
 
Fecha de Ingreso: abril-2012
Mensajes: 42
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: resultados consulta ( PHP OBJETOS)

Exacto, el problema veo yo que no esta recibiendo los datos de la clase conexion.php

y por tanto exo esto:

Código PHP:

public function listaCategoria() {
       
ERROR $mysqli = new mysqli($this);
        
ERROR $mysqli->query("SELECT * FROM `categoria`") or die("Error en la consulta");
        
$arrayCategoria $mysqli->use_result();
        return 
$arrayCategoria;
    } 
pero los errores son:

Warning: mysqli::mysqli() expects parameter 1 to be string, object given in E:\xampp\htdocs\Servidor\blogPersonal\Script\Consu ltas.php on line 27

Warning: mysqli::query(): Couldn't fetch mysqli in E:\xampp\htdocs\Servidor\blogPersonal\Script\Consu ltas.php on line 28
  #9 (permalink)  
Antiguo 27/03/2013, 19:12
Avatar de rottenp4nx  
Fecha de Ingreso: octubre-2012
Ubicación: Santiago
Mensajes: 417
Antigüedad: 12 años, 1 mes
Puntos: 36
Respuesta: resultados consulta ( PHP OBJETOS)

Código PHP:
<?php 

/* 
 * To change this template, choose Tools | Templates 
 * and open the template in the editor. 
 */ 

/** 
 * Description of Consultas 
 * 
 * @author Jesus_Diaz 
 */ 

 
require_once 'Conexion.php'

class 
Consultas 

    
// variable donde ugardamos la conexion abierta a la bd 
    
private $db

    
//constructor que inicializamos la conexion, es decir,  
    //la abrimos siempre para esta clase 
    
function __construct() { 
        
$c= new Conexion(); 
        
$this->db $c->conexion(); 
    } 

    public function 
listaCategoria() { 
    
ERROR 
      
[LEFT]  $query $db->query("SELECT * FROM `categoria`") or die("Error en [/LEFT]la consulta"); 
        
$arrayCategoria $query->fetch_array(); 
        return 
$arrayCategoria
    } 

    public function 
listaProductos() { 
         
    } 



?>
Ve si te funciona

Y no olvides cambiar las funciones estructuradas de mysqli por los metodos de dicho objeto

Saludos

Etiquetas: mysql, resultados, select
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 22:23.