Foros del Web » Programando para Internet » PHP »

error en sintaxis de mysql en php

Estas en el tema de error en sintaxis de mysql en php en el foro de PHP en Foros del Web. hola a todos..estoy trabajando sobre un buscador..pero me arroja el siguiente error: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in aclaro ...
  #1 (permalink)  
Antiguo 10/04/2010, 12:12
Avatar de oscalber  
Fecha de Ingreso: octubre-2009
Ubicación: palmira
Mensajes: 103
Antigüedad: 14 años, 6 meses
Puntos: 0
error en sintaxis de mysql en php

hola a todos..estoy trabajando sobre un buscador..pero me arroja el siguiente error:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in

aclaro que estoy trabajando con la libreria adodb5

el codigo es el siguiente:


<?php



$registros = 3;

if (!$pagina) {
$inicio = 0;
$pagina = 1;
}
else {
$inicio = ($pagina - 1) * $registros;
}

$palabra_original = $_POST[palabra];
if ( isset($palabra_original) )
{
$palabra = htmlentities($palabra_original);
// Incluimos el archivo con los datos y la conexion
// a la base de datos
include('configuracion.php');
if (!$num) $num=0;
//Separamos las palabras usando cada espacio como separador
//Hacemos la separaci&oacute;n de la cadena a buscar
$cadenas_buscadas = explode(" ",$palabra);
$numero_de_cadenas = count($cadenas_buscadas);
if ( $numero_de_cadenas == 1 )
{
//Si solo hay una palabra usamos LIKE
$sql="select *
FROM libros
WHERE (titulo LIKE '%$palabra%' OR desarrollo LIKE '%$palabra%')
ORDER BY titulo
LIMIT ".$num.",20";
$total_registros = mysql_num_rows($sql); //aqui aparece el error
$total_paginas = ceil($total_registros / $registros);
}
if ( $numero_de_cadenas > 1 )
{
//Si hay m&aacute;s de una palabra usaremos MATCH AGAINST
$sql="select distinct * , MATCH (titulo, desarrollo)
AGAINST ( '%".$palabra."%' ) AS Criterio
FROM libros WHERE MATCH (`titulo`,`desarrollo`)
AGAINST ( '%".$palabra."%' IN BOOLEAN MODE )
ORDER BY Criterio
DESC LIMIT ".$num.",20";
$total_registros = mysql_num_rows($sql); //aqui aparece el error
$total_paginas = ceil($total_registros / $registros);
}


$rs = $db->Execute($sql);
if ( !isset($rs) )
{
echo $db->ErrorMsg();
}
if ( $rs->fields["desarrollo"] )
{

echo '<p>Texto ingresado: <b>'.$palabra_original.'</b></p>';
echo '<p>N&uacute;mero de palabras buscadas: <b>'.$numero_de_cadenas.'</b></p>';
// echo '<table width=\"400\">
echo '<th>';
echo'<strong><p># T&iacute;tulo</p></strong>';
echo'</th>';
$contador = 0;
while (!$rs->EOF)
{
$contador++;
echo '<tr>';
echo '<td>';


echo "<a>".$contador."</a>".".";
$paso=" " .$rs->fields["referencia"]."";
echo " " .$rs->fields["titulo"]."";
echo "<a href='descargas7.php?referencia=$paso' target='_parent'>descargar " .$rs->fields["titulo"]."</a></br><tr></tr>";

echo'</td>';
echo '<td>';
echo '<td>';
echo '<td>';
echo '<td>';


$rs->MoveNext();
}
}
else
{
echo 'No se han encontrado resultados correspondientes a su b&uacute;squeda.';
}
if($total_registros) {

echo "<center>";

if(($pagina - 1) > 0) {
echo "<a href='paginacion.php?pagina=".($pagina-1)."'>< Anterior</a> ";
}

for ($i=1; $i<=$total_paginas; $i++){
if ($pagina == $i)
echo "<b>".$pagina."</b> ";
else
echo "<a href='paginacion.php?pagina=$i'>$i</a> ";
}

if(($pagina + 1)<=$total_paginas) {
echo " <a href='paginacion.php?pagina=".($pagina+1)."'>Sigui ente ></a>";
}

echo "</center>";

}
}
else
{
header('Location: index.php');
}
?>



por que sera??



saludos:.... :(
  #2 (permalink)  
Antiguo 10/04/2010, 16:50
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Respuesta: error en sintaxis de mysql en php

Hola oscalber,

Bueno es por que te falta aplicar el "mysql_query":

Código PHP:
$total_registros mysql_num_rows($sql); 
tiene q ser de la siguiente forma:

Código PHP:
$total_registros mysql_num_rows(mysql_query($sql)); 

Salu2
__________________

  #3 (permalink)  
Antiguo 10/04/2010, 18:27
Avatar de oscalber  
Fecha de Ingreso: octubre-2009
Ubicación: palmira
Mensajes: 103
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: error en sintaxis de mysql en php

graciass..pero no me sirve...sigue arrojando ese error.. :(
  #4 (permalink)  
Antiguo 10/04/2010, 18:35
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: error en sintaxis de mysql en php

El error te indica claramente, que mysql_num_rows necesita recibir como parametro un recurso y no le estás brindando la información que te pide. Por lo tanto debes verificar que la consulta la estés haciendo correctamente, usa la función mysql_error para saber si tienes algún error en ella o verifica que estés indicando la variable que obtiene la información de mysql_query
Código PHP:
Ver original
  1. mysql_query('aqui va tu consulta') or die(mysql_error());
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 10/04/2010, 18:53
Avatar de oscalber  
Fecha de Ingreso: octubre-2009
Ubicación: palmira
Mensajes: 103
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: error en sintaxis de mysql en php

coloque el or die..y me aparece esto:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '20' at line 6..
  #6 (permalink)  
Antiguo 10/04/2010, 18:58
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: error en sintaxis de mysql en php

Verifica tu consulta, tienes error en ella.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 10/04/2010, 19:00
Avatar de oscalber  
Fecha de Ingreso: octubre-2009
Ubicación: palmira
Mensajes: 103
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: error en sintaxis de mysql en php

ya encontre el error de sintaxis gracias.....



saludos.....

Etiquetas: mysql, sintaxis
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 08:05.