Foros del Web » Programando para Internet » PHP »

Error en Buscador PHP + MySQL (Match Against)

Estas en el tema de Error en Buscador PHP + MySQL (Match Against) en el foro de PHP en Foros del Web. Hola a todos. Ojalá me pudieran ayudar con un problema que tengo con un código de php usado para un buscador. Me marca el siguiente ...
  #1 (permalink)  
Antiguo 16/04/2009, 15:44
 
Fecha de Ingreso: abril-2009
Mensajes: 5
Antigüedad: 15 años
Puntos: 0
Error en Buscador PHP + MySQL (Match Against)

Hola a todos.
Ojalá me pudieran ayudar con un problema que tengo con un código de php usado para un buscador.
Me marca el siguiente error: Parse error: syntax error, unexpected $end in /Library/WebServer/Documents/buscar.php on line 71

EL html: es el siguiente
Código HTML:
<form id="searchform" method="post" action="buscar.php">
	<div>
		<h2>Site Search</h2>
		<input name="word" type="text" id="busqueda" value="Search" size="30" />
    	<input name="finder" type="button" value="Search" />                         
	</div>
</form> 
La base de datos se llama 'Phytochemicals' y tiene una tabla que se llama 'views' con cuatro campos:
  1. d: int(11)
  2. titulo(varchar(100))
  3. noticia(longtext)
  4. autor(varchar)

Tiene un indice tipo FULLTEXT que afecta a las columnas 'titulo', 'noticia' y 'autor'.

El codigo php es:
Código PHP:
<?
if ($_POST['finder']) {
    
//Tomamos el valor ingresado
    
$search $_POST['word'];
    
    
// Si está vacío, lo informamos, sino realizamos la busqueda
    
if (empty($search)) {
              echo 
"Please, enter a string to search";
    }else {
        
//Contamos el número de palabras introducidas
        
if ($search<>'') {
            
$token explode(" ",$search);
            
$coincidences count($token);
            if (
$coincidences == 1) {
                
// Si sólo hay una palabra para busccar, se escoge un SQL con LIKE
                
$sql_easy "SELECT * FROM noticias WHERE noticia LIKE '%search%' OR noticia LIKE '%search%' LIMIT 50";
                
                
//Conexión a la base de datos y selección de registros
                
$connection mysql_connect("localhost","root","admin");
                
mysql_select_db("Phytochemicals"$connection);            
                
                
$result mysql_query($sql_easy$connection);
                
                
// Tomamos el total de los resultados
                
$total mysql_num_rows($result);
                
                
// Imprimimos el total de los resultados
                
if ($row mysql_fetch_array($result)) {
                    echo 
"Results to: <b>$search</b>";
                    
                    do {
                        
?>
                        <p><b><a href="noticia.php?id=<?=$row['id'];?>"><?=$row['titulo'];?></a></b></p>
                        <?
                    
} while($row mysql_fetch_array($result)); 
                    echo 
"<p>Results: $total</p>";
                } else {
                    
// En caso de no encontrar resultado
                    
echo "Not found results to: <b>$search</b>";
                }
            } else if(
$coincidences 1) {
                
// Si hay más de una palabra (frase) se usa el algoritmo MATCH AGAINST
                
$sql_hard "SELECT*titulo, MATCH (`titulo`,`cuerpo`) AGAINST ('$search') AS score FROM views WHERE* MATCH (`titulo`,`cuerpo`) AGAINST ('$search') ORDER* BY score DESC LIMIT 50";
                
                
//Conexión a la base de datos y selección de registros
                
$connection mysql_connect("localhost","root","admin");
                
mysql_select_db("Phytochemicals"$connection);            
                
                
$result mysql_query($sql_easy$connection);
                
                
// Tomamos el total de los resultados
                
$total mysql_num_rows($result);
                
                
// Imprimimos el total de los resultados
                
if ($row mysql_fetch_array($result)) {
                    echo 
"Results to: <b>$search</b>";
                    
                    do {
                        
?>
                        <p><b><a href="noticia.php?id=<?=$row['id'];?>"><?=$row['titulo'];?></a></b></p>
                        <?
                    
} while($row mysql_fetch_array($result)); 
                    echo 
"<p>Results: $total</p>";
                } else {
                    
// En caso de no encontrar resultado
                    
echo "Not found results to: <b>$search</b>";
                }
            }    
        }
    }
?>
Agradezco de antemano su ayuda.
  #2 (permalink)  
Antiguo 16/04/2009, 18:47
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Error en Buscador PHP + MySQL (Match Against)

Parece que te falta una llave de cierre }
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 20/04/2009, 10:57
 
Fecha de Ingreso: abril-2009
Mensajes: 5
Antigüedad: 15 años
Puntos: 0
Respuesta: Error en Buscador PHP + MySQL (Match Against)

Ok...ya lo revise y sí le faltaba una }.

Sin embargo, ahora no me regresa nada.

Además corregí el problema de que jalaba la tabla noticias, en lugar de views.

Código PHP:
<?
if ($_POST['finder']) {
    
//Tomamos el valor ingresado
    
$search $_POST['word'];
    
    
// Si está vacío, lo informamos, sino realizamos la busqueda
    
if (empty($search)) {
              echo 
"Please, enter a string to search";
    }else {
        
//Contamos el número de palabras introducidas
        
if ($search<>'') {
            
$token explode(" ",$search);
            
$coincidences count($token);
            if (
$coincidences == 1) {
                
// Si sólo hay una palabra para busccar, se escoge un SQL con LIKE
                
$sql_easy "SELECT * FROM views WHERE noticia LIKE '%search%' OR noticia LIKE '%search%' LIMIT 50";
                
                
//Conexión a la base de datos y selección de registros
                
$connection mysql_connect("localhost","root","admin");
                
mysql_select_db("Phytochemicals"$connection);            
                
                
$result mysql_query($sql_easy$connection);
                
                
// Tomamos el total de los resultados
                
$total mysql_num_rows($result);
                
                
// Imprimimos el total de los resultados
                
if ($row mysql_fetch_array($result)) {
                    echo 
"Results to: <b>$search</b>";
                    
                    do {
                        
?>
                        <p><b><a href="noticia.php?id=<?=$row['id'];?>"><?=$row['titulo'];?></a></b></p>
                        <?
                    
} while($row mysql_fetch_array($result)); 
                    echo 
"<p>Results: $total</p>";
                } else {
                    
// En caso de no encontrar resultado
                    
echo "Not found results to: <b>$search</b>";
                }
            } else if(
$coincidences 1) {
                
// Si hay más de una palabra (frase) se usa el algoritmo MATCH AGAINST
                
$sql_hard "SELECT*titulo, MATCH (`titulo`,`cuerpo`) AGAINST ('$search') AS score FROM views WHERE* MATCH (`titulo`,`cuerpo`) AGAINST ('$search') ORDER* BY score DESC LIMIT 50";
                
                
//Conexión a la base de datos y selección de registros
                
$connection mysql_connect("localhost","root","admin");
                
mysql_select_db("Phytochemicals"$connection);            
                
                
$result mysql_query($sql_easy$connection);
                
                
// Tomamos el total de los resultados
                
$total mysql_num_rows($result);
                
                
// Imprimimos el total de los resultados
                
if ($row mysql_fetch_array($result)) {
                    echo 
"Results to: <b>$search</b>";
                    
                    do {
                        
?>
                        <p><b><a href="noticia.php?id=<?=$row['id'];?>"><?=$row['titulo'];?></a></b></p>
                        <?
                    
} while($row mysql_fetch_array($result)); 
                    echo 
"<p>Results: $total</p>";
                } else {
                    
// En caso de no encontrar resultado
                    
echo "Not found results to: <b>$search</b>";
                }
            }    
        }
    }
}
?>
Ojalá y me ayuden.
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 19:03.