Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

urgente error mysql_num_rows() expects parameter 1 to be resource, boolean given

Estas en el tema de urgente error mysql_num_rows() expects parameter 1 to be resource, boolean given en el foro de Mysql en Foros del Web. ayuda tengo una base de datos para un buscador y meda el siguiente error ayuda urgente por fa "Warning: mysql_num_rows() expects parameter 1 to be ...
  #1 (permalink)  
Antiguo 24/01/2011, 19:06
Usuario no validado
 
Fecha de Ingreso: enero-2011
Mensajes: 36
Antigüedad: 13 años, 3 meses
Puntos: 0
Exclamación urgente error mysql_num_rows() expects parameter 1 to be resource, boolean given

ayuda tengo una base de datos para un buscador y meda el siguiente error ayuda urgente por fa "Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in"


mi base de datos


<?php
require_once("conexion.php");
/*
$sql="select count(*) as cuantos from claves
where
codigo like '%".$_GET["s"]."%'
or
direccion like '%".$_GET["s"]."%'
or
nombre like '%".$_GET["s"]."%'
";
$res=mysql_query($sql,$con);
if ($reg=mysql_fetch_array($res))
{
$total=$reg["cuantos"];
}
*/
//************************************************** ******************
if (isset($_GET["pos"]))
{
$inicio=$_GET["pos"];
}else
{
$inicio=0;
}
$sql="select * from claves
where
codigo like '%".$_GET["s"]."%'
or
direccion like '%".$_GET["s"]."%'
or
nombre like '%".$_GET["s"]."%'
limit $inicio,5
";
$res=mysql_query($sql,$con);
$total = mysql_num_rows($res);
echo $total;

?>
<html>
<head>
<title>Buscador</title>
<style type="text/css">
#principal { white:800px; height:100%}
#header { width:800px; height:100px; float:left; background-color:#666666; color:#FFFFFF}
#menu {width:800px; height:25px; float:left}
.boton {width:100px; heigt:25px; float:left; background-color:#FF0000;color:#FFFFFF}
.buscador {width:300px; height:25px; float:left}
#main{width:800px; height:100%; float:left}



</style>
</head>


<body>

<div id="principal">
<div align="center" id="header">
<h1>
cabecero
</h1>
</div>
<div id="menu">

<div class="boton">
boton 1
</div>
<div class="boton">
boton 1
</div>
<div class="boton">
boton 1
</div>
<div class="boton">
boton 1
</div>
<div class="boton">
boton 1
</div>

<!--aca va el div menu-->
<div align="center" class="buscador">
<form name="buscador" method="get" action="resultados.php">
<input type="text" name="s">
<a href="javascript:void(0)" title="Buscar" onClick="document.buscador.submit();">
<img src="imagenes/buscar.png" width="24" height="24" border="0">
</a>
</form>
</div>
<!--aca va el div menu-->

</div>

<div align="center" id="main">
<table align="center" width="500">
<tr>
<td valign="top" align="center" width="500" colspan="3">
<h3>Resultado de su B&uacute;squeda</h3>
</td>
</tr>

<tr style="background:#666666; color:#FFFFFF; font-weight:bold">

<td valign="top" align="center" width="100">
C&oacute;digo
</td>
<td valign="top" align="center" width="300">
Direcci&oacute;n
</td>
<td valign="top" align="center" width="100">
Nombre
</td>
</tr>


<?php
if ($total>0)
{
while ($reg=mysql_fetch_array($res))
{


?>

<tr style="background-color:#f0f0f0">
<td valign="top" align="center" width="100">
<?php echo $reg["codigo"];?>
</td>
<td valign="top" align="center" width="300">
<?php echo $reg["direccion"];?>
</td>
<td valign="top" align="center" width="100">
<?php echo $reg["nombre"];?>
</td>
</tr>
<?php
}
}
?>

</table>
</div>



</body>
</html>
  #2 (permalink)  
Antiguo 25/01/2011, 02:08
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: urgente error mysql_num_rows() expects parameter 1 to be resource, boolean

Esto no va aquí si no en PHP.

Lo que nos pasas es un script PHP no la bbdd.

Estas haciendo dos consultas a la bbdd primero

Código PHP:
Ver original
  1. //Construyes la consulta
  2. $sql="select count(*) as cuantos from claves
  3.           where
  4.           codigo like '%".$_GET["s"]."%'
  5.           or
  6.           direccion like '%".$_GET["s"]."%'
  7.           or
  8.           nombre like '%".$_GET["s"]."%'";
  9.  
  10. //Pides que se ejecute la consulta
  11. $res=mysql_query($sql,$con);
  12.  
  13. //[B]Si da algun [/B]resultado lo lees
  14. if ($reg=mysql_fetch_array($res)){
  15.           $total=$reg["cuantos"];
  16. }

Si aqui hicieras echo $total te mostraria el valor de "cuantos"

En cambio luego haces

Código PHP:
Ver original
  1. //Construyes la consulta
  2.  
  3. $sql="select * from claves
  4.           where
  5.           codigo like '%".$_GET["s"]."%'
  6.           or
  7.           direccion like '%".$_GET["s"]."%'
  8.           or
  9.           nombre like '%".$_GET["s"]."%'
  10.           limit $inicio,5";
  11.  
  12. //Pides que se ejecute la consulta
  13. $res=mysql_query($sql,$con);
  14.  
  15. //[B]Sin comprobar si da algun resultado[/B] pides el numero de lineas
  16. $total = mysql_num_rows($res);
  17.  
  18. //Imprimes el valor
  19. echo $total;

El warning te diece que estas pasando un booleano (true o false) cuando se esperaba un resultset (conjunto de registros).

En el manual nos dicen que

Cita:

resource mysql_query ( string $query [, resource $link_identifier ] )

...

Return Values

For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.

For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, mysql_query() returns TRUE on success or FALSE on error.

Esta claro, no?
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: boolean
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:25.