PHP - Ayuda con este codigo

   
Vista:
Imágen de perfil de Fernando

Ayuda con este codigo

Publicado por Fernando (2 intervenciones) el 11/05/2017 02:01:21
Buenas noches, estoy haciendo un CRUD para conectarme a una base de datos ya hice todos los codigos de crear, insertar, eliminar y actualizar estoy haciendo el de buscar los usuarios por medio del id pero el codigo me arroja el siguiente error.

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\AppServ\www\fase4\buscar.php on line 19

La verdad soy muy nuevo en esto y no entiendo que falta . Agradezco su ayuda.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
 
$servidor = "localhost";
 $usuario = "root";
 $contraseña = "12345";
 $nombrebd = "usuarios";
 
$id=$POST['id'];
 
 $enlace = mysqli_connect($servidor, $usuario, $contraseña, $nombrebd);
 
if (!$enlace) {
    die('No pudo conectarse: ' . mysqli_connect_error());
}
 
$sql="SELECT id, nombre, apellido, correo, telefono FROM administradores WHERE id=$id";
$result=mysqli_query($enlace,$sql);
 
if (mysqli_num_rows($result) > 0) {
	while ( $row=mysqli_fetch_assoc($result)) {
		# code...
		echo "USUARIO: " .$row["id"]. "Nombre: ".$row["id"]. "Apellido: ".$row["apellido"]. "Correo: ".$row["correo"]. "Telefono: ".$row["telefono"]."<br>";
	}
 
}
else {
  echo "No hay resultados ";
}
 
mysqli_close($enlace);
 ?>
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

Ayuda con este codigo

Publicado por Fernando Villegas (1 intervención) el 11/05/2017 06:17:41
Hola, que tal, yo tengo algo parecido, pero aplicado a un SELECT, lo tengo de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
if ($result = mysqli_query($connection, $sql)) {
 
  $rownum = mysqli_num_rows($result);
  if($rownum == 1){
      $_SESSION['print_admin'] = 'ok';
      header("Location: ../admin/index.php");
      die();
 
 }
  else {
      echo "Contraseña erronea";
  }
}

Espero te pueda servir.
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

Ayuda con este codigo

Publicado por Brayan (76 intervenciones) el 11/05/2017 19:07:51
Como dice fernando villegas lo mejor es que primero pongas el num_rows en una variable y luego esa variable sea la que tu compares ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$sql="SELECT id, nombre, apellido, correo, telefono FROM administradores WHERE id=$id";
$result=mysqli_query($enlace,$sql);
$contador=mysqli_num_rows($result) ;
if ($contador > 0) {
	while ( $row=mysqli_fetch_assoc($result)) {
		# code...
		echo "USUARIO: " .$row["id"]. "Nombre: ".$row["id"]. "Apellido: ".$row["apellido"]. "Correo: ".$row["correo"]. "Telefono: ".$row["telefono"]."<br>";
	}
 
}
else {
  echo "No hay resultados ";
}
 
mysqli_close($enlace);
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 [abZeroX]

Ayuda con este codigo

Publicado por [abZeroX] (129 intervenciones) el 12/05/2017 04:07:07
Hola el error se da porque la función mysqli_num_rows, espera que se le pase como para metro un mysqli_result y se le esta pasando un boolean, el cual seguro sea FALSE lo cual indica que la consulta esta fallando. Deberías comprobar que es lo que tiene la variable $result, prueba hacer esto en la linea 18,

1
2
3
echo '<pre>';
var_dump($result);
echo '</pre>';

Nos Comentas.
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 Fernando

Ayuda con este codigo

Publicado por Fernando (2 intervenciones) el 13/05/2017 00:09:03
Hola Gracias a todos por su ayuda ya solucione el error. era un error consistente en que había confundido los nombres de la base de datos con la tabla, lamento haberlos puesto a contestar por algo tan sencillo.
El código con el que lo solucione fue este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
$servername = "localhost";
$username = "root";
$password = "12345";
$dbname = "administracion";
$id = $_POST['id'];
 
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
 
$sql = "SELECT id, nombre, apellido, correo FROM usuarios WHERE id=$id";
$result = mysqli_query($conn, $sql);
 
if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        echo "-id: " . $row["id"]."<br>". " - nombre: " . $row["nombre"]."<br>". "  - apellido: " . $row["apellido"]. "<br>"."-correo: ".$row["correo"] ."<br>";
    }
} else {
    echo "0 results";
}
 
mysqli_close($conn);
?>
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