Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: geshiro en 6 Abril 2016, 05:28 am



Título: call to a member function fetch_array() on boolean
Publicado por: geshiro en 6 Abril 2016, 05:28 am
que he hecho mal que no me deje agregar en la parte de la variable $brand me tira on boolean y como pudiera resolverlo

Código
  1. case 'add_product':
  2. $result = new brand();
  3. $newProduct = new product();
  4. $code    = trim(stripslashes(htmlspecialchars($_POST['code'])));
  5. $product = trim(stripslashes(htmlspecialchars($_POST['product'])));
  6. $price   = trim(stripslashes(htmlspecialchars($_POST['price'])));
  7. $stock   = trim(stripslashes(htmlspecialchars($_POST['stock'])));
  8. $brand =  $result->getBrandById($_POST['brand']);
  9. if($newProduct->add($code,$product,$brand,$price,$stock)){
  10. echo "success";
  11. }
  12. else{
  13. echo "No se registro";
  14. }
  15. break;
  16.  




Código
  1. function getBrandById($id){
  2. $sql = "SELECT idbrand,code_,brand FROM brand where idbrand={$id}";
  3. $result = $this->conexion->conexion->query($sql);
  4. $array = array();
  5. while($record = $result->fetch_array(MYSQL_NUM)){
  6. $array[] = $record;
  7. }
  8. return $array;
  9. $this->conexion->cerrar();
  10. }
  11.  


Título: Re: call to a member function fetch_array() on boolean
Publicado por: engel lex en 6 Abril 2016, 05:58 am
Código:
$result = $this->conexion->conexion->query($sql);

al igual que mysql clasico

http://php.net/manual/es/pdo.query.php (http://php.net/manual/es/pdo.query.php)
Citar
PDO::query() devuelve un objeto PDOStatement, o FALSE en caso de error.

Código:
$result->fetch_array(MYSQL_NUM)
funciona solo si $result es un PDOStatement... pero si fue error, es FALSE que es booleano y como tal no tiene una propiedad fetch_array

la solución más simples es ver si hubo errores

Código:
if(!$result) echo $this->conexion->conexion->errorInfo()


Título: Re: call to a member function fetch_array() on boolean
Publicado por: geshiro en 6 Abril 2016, 06:22 am
y como lo repararia es que ya no como, si me hechas la mano?


Título: Re: call to a member function fetch_array() on boolean
Publicado por: engel lex en 6 Abril 2016, 06:28 am
me cito a la respuesta al problema que ya te di

la solución más simples es ver si hubo errores

Código:
if(!$result) echo $this->conexion->conexion->errorInfo()

y por consecuencia si hubo errores, es corregir el error


aunque huelo donde está el error

Citar
SELECT idbrand,code_,brand FROM brand where idbrand={$id}

estás pidiendole entre los elementos, la tabla?


Título: Re: call to a member function fetch_array() on boolean
Publicado por: geshiro en 6 Abril 2016, 06:39 am
si
sige igual prove quitando brand y nada, y con lo de mostrar el error no da error

Mod: No hacer doble post


Título: Re: call to a member function fetch_array() on boolean
Publicado por: engel lex en 6 Abril 2016, 06:41 am
(como en examen)
justifica tu respuesta:


(explicame que intentas hacer pidiendo eso el brand)

estás serudo del enlace al query?
Código:
$this->conexion->conexion->query


Título: Re: call to a member function fetch_array() on boolean
Publicado por: geshiro en 6 Abril 2016, 06:47 am
lo que hace es que no muestre el valor numerico(id) de brand si no el nombre me ya lo borre de hecho porque esta de mas por cosa solo deje idbrand para solo tomarlo idnumerico y en el combo muestra el valor que es no numerico solo que es esa parte nomas la que no me deja


Título: Re: call to a member function fetch_array() on boolean
Publicado por: geshiro en 6 Abril 2016, 07:06 am
me ayudas a crear la solucion man?


Título: Re: call to a member function fetch_array() on boolean
Publicado por: engel lex en 6 Abril 2016, 07:11 am
has algo...

vas a hacer

Código:
if(!$result) var_dump($this->conexion);

si da una cantidad grande de datos, pegalo en pastebin y pasa el link


Título: Re: call to a member function fetch_array() on boolean
Publicado por: geshiro en 6 Abril 2016, 22:03 pm
SELECT idbrand,code_ FROM brand where idbrand=1[["1","A6411la"]]


Código
  1.  
  2. function getBrandById($id){
  3. $sql = "SELECT idbrand,code_ FROM brand where idbrand={$id}";
  4. echo $b = $sql;
  5. $result = $this->conexion->conexion->query($sql);
  6. $array = array();
  7. while($record = $result->fetch_array(MYSQL_NUM)){
  8. $array[] = $record;
  9. }
  10. return $array;
  11. $this->conexion->cerrar();
  12. }
  13. }
  14.  
  15. $ins = new brand();
  16. $r = $ins->getBrandById('1');
  17. echo json_encode($r);
  18.  


Título: Re: call to a member function fetch_array() on boolean
Publicado por: engel lex en 6 Abril 2016, 23:23 pm
no entendi si funcionó o no...y aún no haces revisión de errores