Foros del Web » Programando para Internet » PHP »

Motor de Busqueda interna de paginas con dos criterios

Estas en el tema de Motor de Busqueda interna de paginas con dos criterios en el foro de PHP en Foros del Web. Hola espero que el titulo no les paresca extraña aunque no se me ocurrio otro, tengo una consulta para poder optimizar un motor de busqueda ...
  #1 (permalink)  
Antiguo 17/05/2010, 16:09
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 3 meses
Puntos: 2
Motor de Busqueda interna de paginas con dos criterios

Hola espero que el titulo no les paresca extraña aunque no se me ocurrio otro, tengo una consulta para poder optimizar un motor de busqueda que realice siguiendo un tutorial aqui esta el ejemplo http://www.pyminstalaciones.com/salvi-index.php pueden probar con la palabra videos, resulta que en el formulario de salvi-index.php donde esta el textbox para hacer la consulta quiero ademas de eso poner un select (una lista) para que tenga un criterio más en la busqueda, colocaré el código actual y en comentarios como pienso colocar esa lista, para que me puedan brindar una ayuda, les agradesco de antemano por su ayuda.

Este es mi BD pyminsta_search que tiene una tabla searchengine con los siguientes campos: id, title, description, url y keywords, una fila seria:
ejemplo: 1, Youtube, Pagina de Youtube, http://www.youtube.com youtube, videos

Código HTML:
<form method="GET" action="salvi-search.php">
  <input type="text" name="search" size="50" />
<!--  <select name="select" id="select">
    <option value="Opcion1">Opcion1</option>
    <option value="Opcion2">Opcion2</option>
  </select>-->
  <input type="submit" name="submit" value="search" />
</form> 
Código PHP:
<?php
$button 
$_GET['submit'];
$search $_GET['search'];
//$buscar = $_GET['buscar']; Bueno aqui me quedo no se como continuar
//Y poner en la consulta la llamada a ese campo

if(!$button)
    echo 
"Esta vacio";
else
{
    if (
strlen($search)<=2)
        echo 
"El texto es demasiado corto";
    else{
        echo 
"Se ha buscado <b>$search</b> <hr size='1' color='blue'>";
        
        
mysql_connect("localhost","xx","xx");
        
mysql_select_db("xx");
        

        
$search_exploded explode(" "$search);
        
        foreach(
$search_exploded as $search_each){
            
$x++;
            if (
$x==1)
                
$construct .= "keywords LIKE '%$search_each%'";
            else
                
$construct .= " OR keywords LIKE '%$search_each%'";  
        }
        
        
$construct "SELECT * FROM searchengine WHERE $construct";
        
$run mysql_query($construct);
        
$foundnum mysql_num_rows($run);
        
        if (
$foundnum==0)
            echo 
"No hay resultado de la busqueda";
        else
        {
            echo 
"$foundnum results found!<p>";
            
            while (
$runrows mysql_fetch_assoc($run))
            {
                
$title $runrows['title'];
                
$desc $runrows['description'];
                
$url $runrows['url'];
                echo 
"
                <b>$title</b><br />$desc<br /><a href='$url'>$url</a><p>"
;
            }
        }
    }
}    
?>

Última edición por salvador86; 18/05/2010 a las 14:08
  #2 (permalink)  
Antiguo 18/05/2010, 08:28
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Motor de Busqueda interna de paginas con dos criterios

Hola amigos he probado con esto pero me supongo que debo darle algunas validaciones tal vez me puedan ayudar, veo que algunos leyeron mi pregunta, pero no respondieron si dije algo ofensivo por favor haganmelo saber para mi correción, gracias

Código PHP:
<?php
$button 
$_GET['submit'];
$search $_GET['search'];
$buscar $_GET['buscar'];

mysql_connect("localhost","xx","xx");
mysql_select_db("xx");

$construct "SELECT * FROM searchengine WHERE $search and $buscar";
$run mysql_query($construct);
$foundnum mysql_num_rows($run);

if (
$foundnum==0)
    echo 
"No hay resultado de la busqueda";
else
{
    echo 
"$foundnum results found!<p>";
    
    while (
$runrows mysql_fetch_assoc($run))
    {
        
$title $runrows['title'];
        
$desc $runrows['description'];
        
$url $runrows['url'];
        echo 
"
        <b>$title</b><br />$desc<br /><a href='$url'>$url</a><p>"
;
    }
}
    
?>

Última edición por salvador86; 18/05/2010 a las 14:07
  #3 (permalink)  
Antiguo 18/05/2010, 12:53
 
Fecha de Ingreso: mayo-2010
Mensajes: 53
Antigüedad: 13 años, 11 meses
Puntos: 6
Respuesta: Motor de Busqueda interna de paginas con dos criterios

Cita:
Iniciado por salvador86 Ver Mensaje
Hola amigos he probado con esto pero me supongo que debo darle algunas validaciones tal vez me puedan ayudar, veo que algunos leyeron mi pregunta, pero no respondieron si dije algo ofensivo por favor haganmelo saber para mi correción, gracias

Código PHP:
<?php
$button 
$_GET['submit'];
$search $_GET['search'];
$buscar $_GET['buscar'];

mysql_connect("localhost","xxxxx","xxxxx");
mysql_select_db("xxxxxxxx");

$construct "SELECT * FROM searchengine WHERE $search and $buscar";
$run mysql_query($construct);
$foundnum mysql_num_rows($run);

if (
$foundnum==0)
    echo 
"No hay resultado de la busqueda";
else
{
    echo 
"$foundnum results found!<p>";
    
    while (
$runrows mysql_fetch_assoc($run))
    {
        
$title $runrows['title'];
        
$desc $runrows['description'];
        
$url $runrows['url'];
        echo 
"
        <b>$title</b><br />$desc<br /><a href='$url'>$url</a><p>"
;
    }
}
    
?>
Hola Salvador. Yo estoy intentando hacer algo similar. Tengo este código pero me falla en algo.

<?
$categoria=$_POST[categoria];
$provincia=$_POST[provincia];
include "conecta_bbdd.php";
//Ejecutamos la sentencia SQL
$result=mysql_query("SELECT * FROM qlweb_sites WHERE (categoria = '$categoria') AND (provincia = '$provincia') ORDER BY link_type DESC");
//Mostramos los registros
while ($row=mysql_fetch_array($result))
{
//inicio del bucle
AQUI MOSTRAMOS LOS RESULTADOS EN EL FORMATO DESEADO
//fin del bucle
}
mysql_free_result($result)
?>

Tal vez te sirva de algo.

Por cierto. Te recomiendo no poner el nombre de tu base de datos y password en los post. Hay mucha gente mala por ahí.

Última edición por Joselito36; 18/05/2010 a las 14:20
  #4 (permalink)  
Antiguo 18/05/2010, 14:07
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Motor de Busqueda interna de paginas con dos criterios

Hola Joselito gracias por la ayuda, termine de esta manera:

Código HTML:
<form method="GET" action="vil-search.php">
  <select name="ciudad">
    <option>Cusco</option>
  </select>
  <select name="dias">
    <option>2</option>
    <option>3</option>
    <option>4</option>
  </select>
  <input type="submit" name="submit" value="search" />
</form> 
si quieres que aparesca una pagina para seleccionar la pagina
Código PHP:
<?php
$ciudad 
$_GET['ciudad'];
$dias $_GET['dias'];

echo 
"Se ha buscado <b>$ciudad</b> y <b>$dias</b> <hr size='1' color='blue'>";
mysql_connect("localhost","xx","xx");
mysql_select_db("xx");

$construct "SELECT * FROM consultas WHERE option1 = '$ciudad' and option2 = '$dias'";
$run mysql_query($construct);
$foundnum mysql_num_rows($run);

if (
$foundnum==0)
    echo 
"No hay resultado de la busqueda";
else
{
    echo 
"$foundnum results found!<p>";
    
    while (
$runrows mysql_fetch_assoc($run))
    {
        
$title $runrows['title'];
        
$desc $runrows['description'];
        
$url $runrows['url'];
        echo 
"
        <b>$title</b><br />$desc<br /><a href='$url'>$url</a><p>"
;
    }
}
    
?>
y si quieres que se vaya defrente a la pagina
Código PHP:
<?php
$ciudad 
$_GET['ciudad'];
$dias $_GET['dias'];

mysql_connect("localhost","xx","xx");
mysql_select_db("xx");

$construct "SELECT * FROM consultas WHERE option1 = '$ciudad' and option2 = '$dias'";
$run mysql_query($construct);
$foundnum mysql_num_rows($run);

if (
$foundnum==0)
    echo 
"No hay resultado de la busqueda";
else
{
    while (
$runrows mysql_fetch_assoc($run))
    {
        
$url $runrows['url'];
        
    }
    echo 
"<meta http-equiv=refresh content=1;URL=$url />";
}
    
?>
Pero como vez pongo los valores manualmente en las lista como puedo hacer para que se hagan mediante una base de datos y cuando en la primera se escoja una opcion cambie las opciones de la otra lista, o si no con que titulo puedo buscarlo en internet, muchas gracias.

A y un favor borra de tu comentario el nombre he usuario de mi base de datos, gracias

Última edición por salvador86; 18/05/2010 a las 14:15
  #5 (permalink)  
Antiguo 18/05/2010, 14:24
 
Fecha de Ingreso: mayo-2010
Mensajes: 53
Antigüedad: 13 años, 11 meses
Puntos: 6
Respuesta: Motor de Busqueda interna de paginas con dos criterios

Lo de las claves de la base de datos ya está editado.
Lo que me preguntas no lo se. Soy principiante y seguro que tu sabes más que yo, jeh jeh.

De todos modos como voy a seguir buscando respuestas, cuando de con alguna te la comento.

Gracias, Saludos,

Etiquetas: criterios, dos, motor, 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 00:04.