[Solucionado] num_rows me da error

Iniciado por venadHD, 18 Julio 2015, 01:20 AM

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

venadHD

Código (php) [Seleccionar]
//Datos de testeo
$b_data = $_SERVER['SERVER_NAME'];
$dbConnect->query("insert into global values('$b_data', 'thisInIntroducced')");
$query = $dbConnect->query("select * from global");
$result = $query->result['num_rows'];


Me dice un error, este error:
Notice: Undefined property: mysqli_result::$result in F:\localhost\htdocs\index.php on line 12

Soy nuevo en PHP :( y ando testeando algunas cosas que ando viendo por la php.net


venadHD

Cita de: ivancea96 en 18 Julio 2015, 01:42 AM
El método query retorna un result: http://php.net/manual/es/class.mysqli-result.php
Si Si, eso ya lo tenia, pero me da un error de Undefined property
La linea 12 (que es la que menciona el error es la siguiente)

Undefined property: mysqli_result::$result in F:\localhost\htdocs\index.php on line 12
Código (php) [Seleccionar]
$result = $query->result['num_rows'];

Código (php) [Seleccionar]
<?php
$dbConnect = new mysqli("localhost""root""""global");
//Datos de testeo
$b_data $_SERVER['SERVER_NAME'];
$dbConnect->query("insert into global(name, value) values('$b_data', 'thisInIntroducced')");
$query $dbConnect->query("select * from global");
$result $query->result['num_rows']; //Linea del error
print($result);
print("CLIENTE: ".$b_data);
//Chequeando conexion
if ($dbConnect->connect_errno) {
if ($dbConnect->connect_error) {
print("ERROR DE CONEXION DE MYSQL: ".$dbConnect->connect_error);
die();
}
print("ERROR DE CONEXION DE MYSQL N: ".$dbConnect->connect_errno);
die();
}
$dbConnect->close();
print("<p>Conexion establecida correctamente</p>");
?>


adicional: Lo que pretendo hacer es saber cuantas filas tiene la base de datos, imagino que es esa la funcion que necesito

DarK_FirefoX

Para saber el numero de filas que te devolvió la query utilizando la extensión mysqli tienes dos formas, una por procedimientos, utilizando el método

Código (php) [Seleccionar]
mysqli_num_rows(mysqli_result $result)

Que lo que recibe el resultado de la query

O el estilo orientado objetos:

Código (php) [Seleccionar]
$mysqli_result->num_rows;

Por ejemplo, si el resultado de la query esta en la variable $result:

Estilo objetos:

Código (php) [Seleccionar]
$row_count = $result->num_rows;

Estilo procedimientos:

Código (php) [Seleccionar]
$row_count = mysqli_num_rows($result);

Salu2s

venadHD

#4
Cita de: DarK_FirefoX en 18 Julio 2015, 02:15 AM
Para saber el numero de filas que te devolvió la query utilizando la extensión mysqli tienes dos formas, una por procedimientos, utilizando el método

Código (php) [Seleccionar]
mysqli_num_rows(mysqli_result $result)

Que lo que recibe el resultado de la query

O el estilo orientado objetos:

Código (php) [Seleccionar]
$mysqli_result->num_rows;

Por ejemplo, si el resultado de la query esta en la variable $result:

Estilo objetos:

Código (php) [Seleccionar]
$row_count = $result->num_rows;

Estilo procedimientos:

Código (php) [Seleccionar]
$row_count = mysqli_num_rows($result);

Salu2s

Hmm, se ve que el problema es que estoy dandole un valor nil, es decir, probe ambas formas de lo que me mencionaste, pero devuelve nul, Por otra parte, remodifique el codigo para ver si es el result era la query y usé el codigo que tu me dijiste, y funcionó

Codigo antiguo
Código (php) [Seleccionar]
//getter de filas
$query = $dbConnect->query("select * from global");
$result = $query->result;
//$num_rows = $result->num_rows;
$num_rows = mysqli_num_rows($result);


Codigo nuevo
Código (php) [Seleccionar]
//getter de filas
$query = $dbConnect->query("select * from global");
//$result = $query->result;
//$num_rows = $result->num_rows;
$num_rows = $query->num_rows;
print("Numero de filas: $num_rows <br>");


EDIT

Volvió el problema al cambiarlo a formato tabla, anda ya!! D: Si es el mismo codigo, por que falla ahora?

Código (php) [Seleccionar]
<?php
//Conexion a base de datos
$db = array();
$db['usuario'] = "root"$db['contra'] = ""$db['dbnombre'] = 'global'$db['host'] = 'localhost';
$dbConnect = new mysqli($db['host'], $db['usuario'], $db['contra'], $db['dbnombre']);
//Chequeo de conexion a base de datos
if ($dbConnect->connect_errno) {
if ($dbConnect->connect_error) {
print("ERROR DE CONEXION DE MYSQL: ".$dbConnect->connect_error);
die();
}
print("ERROR DE CONEXION DE MYSQL N: ".$dbConnect->connect_errno);
die();
}
//Numero de filas en la base de datos
$query $dbConnect->query("select * from {$db['dbnombre']}");
$numero_filas $query->num_rows;
?>


EDIT DE NUEVO:

Era error de la base de datos, ya esta todo bien XD