PHP - Call to a member function query() on a non-object

 
Vista:
Imágen de perfil de Lenny

Call to a member function query() on a non-object

Publicado por Lenny (22 intervenciones) el 24/08/2016 19:27:00
Hola,buen día. No se si aqui sea para hacer este tipo de preguntas,pero..
Disculpe las molestias tengo problema con un id que necesito obtener, soy nueva apenas soy estudiante,pero estoy en practicas.
por lo cual agradecería de antemano si alguien puede explicarme este error.

1
2
3
4
5
6
7
8
<?php
include_once('Clase/material.php');
$objmaterial=new material();
$registro_comanda= $objmaterial->getUltimaComanda();
				$resultado_comanda= $registro_comanda->fetchObject(PDO::FETCH_ASSOC);
				$IDCOMANDA = $resultado_comanda->id;
 
?>
Utilizo este codigo en mi BO. creo la comanda pero al momento de obtenerla
me dice Error en Json Token <position 0, estuve checando y comprobe que mi error esta cuando mi BO. esta en el obtener ahi empieza el error y lo probe aparte y me salio esto.

Fatal error: Call to a member function query() on a non-object in C:\xampp\htdocs\MODEL\Clase\material.php on line 32

mi consulta:

1
2
3
4
5
function getUltimaComanda(){
      $sql="SELECT LAST_INSERT_ID() as id from rest_comanda";
      global $cnx;
      return $cnx->query($sql);
}

Gracias y Disculpe por robarles su tiempo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Call to a member function query() on a non-object

Publicado por kip (877 intervenciones) el 24/08/2016 21:31:46
Hola, puedes hacerle un var_dump() a la global que declaras? Te lo digo porque el error te dice que no es un objeto.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Lenny

Call to a member function query() on a non-object

Publicado por Lenny (22 intervenciones) el 24/08/2016 23:06:34
Hola! Gracias por contestar
1
2
3
4
$objmaterial->guardarComanda();
$registro_comanda=$objmaterial->getUltimaComanda();
$resultado_comanda=$registro_comanda->var_dump();
$idcomanda=$resultado_comanda->id;

Lo puse de la siguiente manera aunque creo que no es correcto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lenny

Call to a member function query() on a non-object

Publicado por Lenny (22 intervenciones) el 24/08/2016 23:23:43
Olvide Mencionar, que como esto manejando Json, como no lo devuelve en arreglo me marca error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Call to a member function query() on a non-object

Publicado por kip (877 intervenciones) el 25/08/2016 00:28:55
Hazlo asi, haciendole un var_dump() a la variable global que llamas para ejecutar tu query:

1
2
3
4
5
function getUltimaComanda(){
      $sql="SELECT LAST_INSERT_ID() as id from rest_comanda";
      global $cnx;
      return $cnx;
}

Luego cuando instancias la clase:

1
2
3
$objmaterial->guardarComanda();
$registro_comanda=$objmaterial->getUltimaComanda();
var_dump($registro_comanda);

El problema no radica en el tipo de dato que quieres que retorne, esta en el objeto que debe ejcutar la query, es por eso que le hago un var_dump() para que te muestre la estrcutura de este, si es que su valor es NULL o es un objeto.

Luego de hacer el var_dump() nos muestras que resultado te arrojo este.

Por cierto, aquella variable $conx donde la creas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lenny

Call to a member function query() on a non-object

Publicado por Lenny (22 intervenciones) el 25/08/2016 01:17:30
Es de mi conexion bd, todas las funciones sirven excepto esa.. :c Muchas gracias por tomarte las molestias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Call to a member function query() on a non-object

Publicado por kip (877 intervenciones) el 25/08/2016 02:24:16
Puedes colocar el conenido de la funcion query() y asi mismo el contenido de la clase material ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Lenny

Call to a member function query() on a non-object

Publicado por Lenny (22 intervenciones) el 25/08/2016 17:46:09
Claro,disculpa por no contestar se fue el internet.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$manejador="";
$servidor="localhost";
$usuario="root";
$pass="";
$base="";
$cadena="$manejador:host=$servidor;dbname=$base";
$cnx = new PDO($cadena,$usuario,$pass);
?>
 
Esta es la funcion
function getUltimaComanda(){
      $sql="SELECT max(IDCOMANDA) as id from rest_comanda";
      global $cnx;
      return $cnx->query($sql);
 }

Gracias.. y asi tengo esta parte del BO.

1
2
3
4
5
6
if (count($_SESSION['detalle'])>0) {
	try {
		$objmaterial->guardarComanda();
		$registro_comanda=$objmaterial->getUltimaComanda();-----> aqui deja de funcionar
		$resultado_comanda=$registro_comanda->fetchObject();
		$idcomanda=$resultado_comanda->id;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lenny

Call to a member function query() on a non-object

Publicado por Lenny (22 intervenciones) el 25/08/2016 21:43:55
Bueno pues se resolvió, de esta manera quedo mi Function.

1
2
3
4
5
function getUltimaComanda(){
      $sql="SELECT last_insert_id() as id from rest_comanda";
      global $cnx;
      return $cnx->query($sql);
}

y mi BO
1
2
3
$registro_comanda=$objmaterial->getUltimaComanda();
$resultado_comanda=$registro_comanda->fetchObject();
$idcomanda=$resultado_comanda->id;

Y Gracias a Kip ;) por la aportación y apoyo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar