Foros del Web » Programando para Internet » PHP »

Cómo separar los resultados de la búsqueda?

Estas en el tema de Cómo separar los resultados de la búsqueda? en el foro de PHP en Foros del Web. Saludos a todos. 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 ...
  #1 (permalink)  
Antiguo 01/02/2010, 16:12
 
Fecha de Ingreso: agosto-2005
Mensajes: 152
Antigüedad: 18 años, 8 meses
Puntos: 0
Cómo separar los resultados de la búsqueda?

Saludos a todos.
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&uacute;squeda arroj&oacute; <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>");
}
}
?>
Con este código muestro los nombres de los compradores de una empresa x conjuntamente con sus correspondientes números de identidad. En la base de datos la tabla donde se almacena dicha información todos los campos son de tipo varchar. El campo código de la empresa es el primary key de la tabla, además de eso tengo un campo indice de múltiples campos de tipo fulltext formado por el código de la empresa y el nombre de la misma, por lo que las búsquedas se pueden hacer por el código de la empresa o por parte del nombre de la misma.
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.
  #2 (permalink)  
Antiguo 01/02/2010, 19:22
Avatar de Fleon  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 14 años, 2 meses
Puntos: 3
Respuesta: Cómo separar los resultados de la búsqueda?

hola efelix, tu problema radica en tu consulta, deberás analizarla mejor, creo que deberás separar las consultas por id y por nombre.

Saludos.

Etiquetas: mysql, resultados, busquedas
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 05:02.