Tengo el siguiente problema. Este es el código php:
Código PHP:
<h1><a href="<?php echo $_SERVER['PHP_SELF']; ?>">Buscador</a></h1>
<form name="buscar" action="<?php $_SERVER['PHP_SELF'] ?>" method="get">
Buscar: <input type="text" size="50" value="<?php echo $_GET['frase']; ?>" name="frase" />
<input type="submit" name="buscar" value="Buscar" />
</form>
<?php
// conectar al servidor
$server_link = mysql_connect("servidor", "user", "password");
if(!$server_link){
die("Falló la Conexión ". mysql_error());
}
// seleccionamos la base de datos
$db_selected = mysql_select_db("empresas", $server_link);
if(!$db_selected){
die("No se pudo seleccionar la Base de Datos ". mysql_error());
}
// verificamos que el formulario halla sido enviado
if(isset($_GET['buscar']) && $_GET['buscar'] == 'Buscar'){
$frase = addslashes($_GET['frase']);
// hacemos la consulta de busqueda
// ver explicación mas abajo
$sqlBuscar = mysql_query("SELECT codigo_emp, descripcion, comprador1, identidad1, comprador2, identidad2, comprador3, identidad3, comprador4, identidad4,
MATCH (codigo_emp, descripcion)
AGAINST ('$frase' IN BOOLEAN MODE) AS coincidencias
FROM datos
WHERE MATCH (codigo_emp, descripcion)
AGAINST ('$frase' IN BOOLEAN MODE)
ORDER BY coincidencias DESC", $server_link)
or die(mysql_error());
$totalRows = mysql_num_rows($sqlBuscar);
// Enviamos un mensaje
// indicando la cantidad de resultados ($totalRows)
// para la frase busada ($frase)
if(!empty($totalRows)){
echo stripslashes("<p>Su búsqueda arrojó <strong>$totalRows</strong> resultados para <strong>$frase</strong></p>");
// mostramos los resultados
echo "<table border = 1>"; //EMPIEZA A CREAR LA TABLA CON LOS ENCABEZADOS DE TABLA
echo "<tr bgcolor = #FFFFCC>";//CREA UNA NUEVA FILA
echo "<td>Nombre y Apellidos</td>";
echo "<td>Carné de Identidad</td>";
echo "</tr>";
while($row = mysql_fetch_array($sqlBuscar)){
echo "<marquee behavior = scroll direction = right>Los compradores para ".strtoupper($frase)." son:</marquee>";
echo "<br>";
echo "<strong><a href='#'>$row[codigo_emp]</a>:</strong> <em>Coincidencias: ". round($row['coincidencias']) ."</em><br />";
echo "<br>";
echo "<tr bgcolor = #FFFFCC>";
echo "<td>"."<p>".strip_tags($row['comprador1'])."</p>"."</td>";
echo "<td>"."<p>".strip_tags($row['identidad1'])."</p>"."</td>";
echo "</tr>";
echo "<tr bgcolor = #FFFFCC>";
echo "<td>"."<p>".strip_tags($row['comprador2'])."</p>"."</td>";
echo "<td>"."<p>".strip_tags($row['identidad2'])."</p>"."</td>";
echo "</tr>";
echo "<tr bgcolor = #FFFFCC>";
echo "<td>"."<p>".strip_tags($row['comprador3'])."</p>"."</td>";
echo "<td>"."<p>".strip_tags($row['identidad3'])."</p>"."</td>";
echo "</tr>";
echo "<tr bgcolor = #FFFFCC>";
echo "<td>"."<p>".strip_tags($row['comprador4'])."</p>"."</td>";
echo "<td>"."<p>".strip_tags($row['identidad4'])."</p>"."</td>";
echo "</tr>";
}
}// si se ha enviado vacio el formulario
// mostramos un mensaje del tipo Oops...!
elseif(empty($_GET['frase'])){
echo "Debe introducir el criterio de búsqueda.";
}
// si no hay resultados
// otro mensaje del tipo Oops...!
elseif($totalRows == 0){
echo stripslashes("Su búsqueda no arrojo resultados para <strong>$frase</strong>");
}
}
?>
Hata el momento funciona bien, pero en el día de hoy probé a ingresar varios registros donde coincidieran en algo el nombre de la empresa, y ahí apareció el primer problema. Por supuesto que muestra todos los registros que coincidan con el criterio de búsqueda, es decir que si una empresa se llama Empresa de Frutas y la otra Frutas Selectas, al poner como criterio la palabra frutas me salen las dos empresas con sus correspondientes datos.
Cómo hago para que no se muestren en una misma página los resultados de ambas empresas, cuando la búsqueda se haga por parte del nombre de la misma y no por su código?.
Muchas Gracias.
Espero hayan entendido lo que deseo.