call to a member function fetch_array() on boolean

Iniciado por geshiro, 6 Abril 2016, 05:28 AM

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

geshiro

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 (php) [Seleccionar]

case 'add_product':
$result = new brand();
$newProduct = new product();
$code    = trim(stripslashes(htmlspecialchars($_POST['code'])));
$product = trim(stripslashes(htmlspecialchars($_POST['product'])));
$price   = trim(stripslashes(htmlspecialchars($_POST['price'])));
$stock   = trim(stripslashes(htmlspecialchars($_POST['stock'])));
$brand =  $result->getBrandById($_POST['brand']);
if($newProduct->add($code,$product,$brand,$price,$stock)){
echo "success";
}
else{
echo "No se registro";
}
break;





Código (php) [Seleccionar]

function getBrandById($id){
$sql = "SELECT idbrand,code_,brand FROM brand where idbrand={$id}";
$result = $this->conexion->conexion->query($sql);
$array = array();
while($record = $result->fetch_array(MYSQL_NUM)){
$array[] = $record;
}
return $array;
$this->conexion->cerrar();
}

engel lex

$result = $this->conexion->conexion->query($sql);

al igual que mysql clasico

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

$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

if(!$result) echo $this->conexion->conexion->errorInfo()
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.

geshiro

y como lo repararia es que ya no como, si me hechas la mano?

engel lex

me cito a la respuesta al problema que ya te di

Cita de: engel lex en  6 Abril 2016, 05:58 AM
la solución más simples es ver si hubo errores

if(!$result) echo $this->conexion->conexion->errorInfo()

y por consecuencia si hubo errores, es corregir el error


aunque huelo donde está el error

CitarSELECT idbrand,code_,brand FROM brand where idbrand={$id}

estás pidiendole entre los elementos, la tabla?
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.

geshiro

#4
si

sige igual prove quitando brand y nada, y con lo de mostrar el error no da error

Mod: No hacer doble post

engel lex

(como en examen)
justifica tu respuesta:


(explicame que intentas hacer pidiendo eso el brand)

estás serudo del enlace al query?
$this->conexion->conexion->query
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.

geshiro

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

geshiro


engel lex

has algo...

vas a hacer

if(!$result) var_dump($this->conexion);

si da una cantidad grande de datos, pegalo en pastebin y pasa el link
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.

geshiro

SELECT idbrand,code_ FROM brand where idbrand=1[["1","A6411la"]]


Código (php) [Seleccionar]

   
function getBrandById($id){
$sql = "SELECT idbrand,code_ FROM brand where idbrand={$id}";
echo $b = $sql;
$result = $this->conexion->conexion->query($sql);
$array = array();
while($record = $result->fetch_array(MYSQL_NUM)){
$array[] = $record;
}
return $array;
$this->conexion->cerrar();
}
}

$ins = new brand();
$r = $ins->getBrandById('1');
echo json_encode($r);