Foros del Web » Programando para Internet » PHP »

Buscador avanzado

Estas en el tema de Buscador avanzado en el foro de PHP en Foros del Web. Hola a todos Tengo un inconveniente con un buscador avanzado. Cuando quiero ejecutarlo me da el siguiente error: Cita: Warning: mysql_fetch_object(): supplied argument is not ...
  #1 (permalink)  
Antiguo 27/12/2012, 16:26
 
Fecha de Ingreso: marzo-2008
Ubicación: Posadas Misiones Argentina
Mensajes: 480
Antigüedad: 16 años, 8 meses
Puntos: 1
Buscador avanzado

Hola a todos

Tengo un inconveniente con un buscador avanzado. Cuando quiero ejecutarlo me da el siguiente error:

Cita:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\wamp\www\buscador\buscar.php on line 27
El codigo el el siguiente:

Cita:
<?php
.
.
.
elseif($numero > 1){
//SI HAY UNA FRASE SE UTILIZA EL ALGORITMO DE BUSQUEDA AVANZADO DE MATCH AGAINST.
//busqueda de frases con mas de una palabra y un algoritmo especializado
$cadbusca = "SELECT referencia, titulo , MATCH ( titulo, desarrollo ) AGAINST ( '$busqueda' ) AS Score FROM articulos WHERE MATCH ( titulo, desarrollo ) AGAINST ( '$busqueda' ) ORDER BY Score DESC LIMIT 50";
echo $cadbusca;
}
$result= mysql_query($cadbusca);
echo $result;
while($row = mysql_fetch_object($result)){
//mostramos los articulos de los articulos o lo que deseamos...
$refer = $row->referencia;
$titulo = $row->titulo;
echo $refer . " - " . $titulo . "<br>";
}
}
?>
Aclaración:
La linea 27 corresponde al codigo:
Cita:
while($row = mysql_fetch_object($result)){
Me pueden ayudar . Gracias
  #2 (permalink)  
Antiguo 27/12/2012, 17:04
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Buscador avanzado

Altamente probable que la consulta no devuelva registros porque no hay datos que cumplan con las condiciones del WHERE. Pero como no estás validando el resultado de la consulta antes de intentar acceder al array, entonces genera un error.
Una parte del problema (la validación de si $result contiene algo) es tema del Foro de PHP, no de MySQL.
En cuanto a la consulta, mi sugerencia es que la pruebes ejecutar en phpMyAdmin con valores manualmente. Si no genera un error, y devuelve datos, entonces el problema es que tienes errores de manejo de las variables en PHP (off-topic aquí). Si no devuelve datos, entonces no hay nada que cumpla las condiciones, como te dije, y debes hacer un ajuste en tu código PHP.

Te paso el post al Foro de PHP para que revisen eso los que conocen el lenguaje.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 27/12/2012, 17:39
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Buscador avanzado

sería bueno que depuraras tu consulta
Código PHP:
Ver original
  1. $result= mysql_query($cadbusca) or die(mysql_error());

de manera que php te diga cual es el error que tienes, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #4 (permalink)  
Antiguo 02/01/2013, 14:45
 
Fecha de Ingreso: marzo-2008
Ubicación: Posadas Misiones Argentina
Mensajes: 480
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: Buscador avanzado

Hola

Hice caso a lo que me habian dicho y agregue el codigo:

$result= mysql_query($cadbusca) or die(mysql_error());

El erro que me da, era que la tabla no soporta los indices fulltext. Entonces cambie el motor en vez de InnoDB , le cambie por MyISAM (Lei por internet que este motor si soporta los indices fulltext.)
Entonces probe y otra vez me surgio un nuevo error que es el siguiente:
Can't find FULLTEXT index matching the column list

No sé porque me dice esto porque cuando creo la tabla(motor MyISAM) yo defino mis campos titulo y dasarrollo como fulltext, entonces porque me dice que no encuentra ninguna columna de la tabla con indices fulltext.
Entonces de vuelta pido su ayuda, si hay algo que no me estoy dando cuenta. Gracias.

Etiquetas: avanzado, select, sql, buscadores
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:51.