Foros del Web » Programando para Internet » PHP »

Problema con buscador interno PHP

Estas en el tema de Problema con buscador interno PHP en el foro de PHP en Foros del Web. Hola, soy nuevo en PHP y les cuento mi problema. Implementé un buscador interno que encontré para descargar y al hacerle unas modificaciones logré que ...
  #1 (permalink)  
Antiguo 01/06/2009, 23:38
RTA
 
Fecha de Ingreso: junio-2009
Mensajes: 2
Antigüedad: 14 años, 10 meses
Puntos: 0
Problema con buscador interno PHP

Hola, soy nuevo en PHP y les cuento mi problema.

Implementé un buscador interno que encontré para descargar y al hacerle unas modificaciones logré que funcionara correctamente en mi página web.

El buscador solo lee los datos desde un archivo de texto .dat y funciona perfecto, con solo una salvedad que no logro solucionar.

Y es que cuando en el buscador pongo una palabra que se que no existe en el archivo donde busca (erhgf, por ejemplo), no me muestra el mensaje programado de "No hay resultados para la palabra: xx" y peor aun me dice "1 resultado para : erhgf", aunque no me muestra ningun resultado.

El punto es que quiero que me muestre de forma correcta el mensaje de que no hay resultados cuando efectivamente no los hayan.

Pueden probarlo en 3w.karaokemovil.cl/search.html (poner las w)

el codigo completo es el siguiente:


Código PHP:
</head>
<?
extract
($HTTP_GET_VARS);
extract($HTTP_POST_VARS);
//$results_per_page - how many results you want to be displayed per page?
$results_per_page=12;
if(
$action == "search" && "list") {
$user file("site.dat");
$lis 0;
if(
strlen($keyword) <= 2){
    print 
"<p><BR><BR><BR><b>La palabra de búsqueda debe tener al menos 3 caracteres</b><br>";
}
else{
    for(
$x=0;$x<sizeof($user);$x++) {
        
$temp explode(";",$user[$x]);
        
$opp[$x] = "$temp[0]";
        
$such stristr($opp[$x],$keyword);
        if(
$such) { 
            
$list[$lis] = $opp[$x];
            
$lis++;
                }
    }
        
    if(
sizeof($list) != "0") {
        
//sort($keyword);
        
echo "<font face=arial size=2><p><b>",sizeof($list),"</b> resultado(s) encontrado(s) para: <strong>$keyword</strong><BR></p></font>";
$fa fopen ("tempurl.txt""w");
fwrite ($fa"");
fclose ($fa);

for(
$y=0;$y<sizeof($list);$y++) {
$temp explode(";",$list[$y]);
$fa fopen ("tempurl.txt""a++");
fwrite ($fa$temp[0]);
fclose ($fa);
}
?>
<?
    
if (is_file("tempurl.txt"))
    {
    
$fp=file("tempurl.txt");
    
$s=sizeof($fp);
if (
$page=='' or !$page) { $page=1; }
$end=$results_per_page*$page;
$start=$end-$results_per_page;

if (
$start<>'0') {
    
$new_page=$page-1;
    
$prev="<a href='?action=list&page=$new_page'><--Anterior</a>";
}
else {
    
$prev="";
}

if (
$end<$s) {
    
$new_page1=$page+1;
    
$next="<a href='?action=list&page=$new_page1'>Siguiente--></a>";
}
else {
    
$next="";
}

for (
$i=$start$i<$end$i++)
    {
    
$p=explode(';'$fp[$i]);
echo 
"<dl><dd><font face=arial size=2><b>$p[0]</a></b><BR>$p[1]<BR><FONT SIZE=\"2\" COLOR=\"#00000\">$p[2]</FONT></dL>";
}
        }
    
$pages=$s/$results_per_page;
$pages1=round($pages2);
$pexplode("."$pages1);
$pcount=count($p);
$ext=$p[$pcount-2];
if (
$ext!=0) {
    
$num=$p[0]+1;
}

else {
    
$num=$p[0];
}
echo 
"<table width='100%'><tr><td align='left'>$prev</td><td align='center'>";
echo 
"Página:";
    
for (
$i=1$i<=$num$i++) {
    if (
$i==$page) {
echo 
"<B>&nbsp;$i&nbsp;</B> ";

    }
    else {
echo 
"<a href='?action=list&page=$i'>[$i]</a>";
}
}
echo 
"</td><td align='right'>$next</td></table>";

}

else{
    echo 
"<p><b>No hay resultados para la palabra: <strong>$keyword.</strong></b><br>";
    }
    }

}

if(
$action == "submit") {
$fp fopen ("site.dat""a+");
fwrite ($fp$title);
fwrite ($fp";");
fwrite ($fp$description);
fwrite ($fp";");
fwrite ($fp$link);
fwrite ($fp";");
fwrite ($fp$keywords);
fwrite ($fp";");
fwrite ($fp"\n");
fclose ($fp);
print 
"<pre><font face=arial size=3>Site has been added successfully<br><br>";
    }
if(
$action == "add") {
echo 
" <center><font face=arial>Submit a site:</center><br></font><form name=\"add\" method=\"post\" action=\"?action=submit\">";
echo 
"<font face=arial size=2>Tltle:<FONT COLOR=\"#FF0066\">*</FONT><BR> <input type=text name=title size=30><br>The title of your site.</font><br><br>";
echo 
"<font face=arial size=2>Description:<FONT COLOR=\"#FF0066\">*</FONT> <BR><input type=text name=description size=50><br>Description of your site.</font><br><br>";
echo 
"<font face=arial size=2>Url:<FONT COLOR=\"#FF0066\">*</FONT><BR><input type=text name=link value=htp:// size=30><br>Link of your site.</font><br><br>";
echo 
"<font face=arial size=2>Keywords:<FONT COLOR=\"#FF0066\">*</FONT><BR><input type=text name=keywords size=30><br>Seperate keywords by spaces</font><br><br><input type=submit value=Submit><BR><BR><FONT COLOR=\"#FF0066\">*</FONT>&nbsp;=&nbsp;Required</form>";
}
?>
<?php
if($action == "list" && "search") {
?>
<?

        
if (is_file("tempurl.txt"))
    {
    
$fp=file("tempurl.txt");
    
$s=sizeof($fp);

if (
$page=='' or !$page) { $page=1; }
$end=$results_per_page*$page;
$start=$end-$results_per_page;

if (
$start<>'0') {
    
$new_page=$page-1;
    
$prev="<a href='?action=list&page=$new_page'><--Anterior</a>";
}
else {
    
$prev="";
}

if (
$end<$s) {
    
$new_page1=$page+1;
    
$next="<a href='?action=list&page=$new_page1'>Siguiente--></a>";
}
else {
    
$next="";
}
echo 
"<font face=arial size=2><p><b>","</b> Mostrando resultados <strong>$keyword</strong><BR></p></font>";
for (
$i=$start$i<$end$i++)
    {
        
$p=explode(';'$fp[$i]);
echo 
"<dl><dd><font face=arial size=2><b>$p[0]</a></b><BR>$p[1]<BR><FONT SIZE=\"2\" COLOR=\"#00000\">$p[2]</FONT></dL>";
}
        }
    
$pages=$s/$results_per_page;
$pages1=round($pages2);
$p=explode('.'$pages1);
$pcount=count($p);
$ext=$p[$pcount-2];
if (
$ext!=0) {
    
$num=$p[0]+1;
}

else {
    
$num=$p[0];
}
echo 
"<table width='100%'><tr><td align='left'>$prev</td><td align='center'>";
echo 
"Página:";
for (
$i=1$i<=$num$i++) {
if (
$i==$page) {
echo 
"<B>&nbsp;$i&nbsp;</B>";
}
    else {
echo 
"<a href='?action=list&page=$i'>[$i]</a>";
}
}
echo 
"</td><td align='right'>$next</td></table>";

}
?>
</center>
</body>
</html></center>
 <body>
 <LEFT>
 <form action="?action=search&list&page=1" method="post" name="searchform">
   <p>&nbsp;   </p>
   <p>
     <input type="text" name="keyword" size="30" maxlength="100">
     <input type="submit" value="Buscar">
     <BR>
     <font size=2><BR>
       <a href='?action=add'></a></font><BR>
     </p>
 </form></CENTER>
 </body>
    </html>
Si alguien me ayuda seré un eterno agradecido

Última edición por RTA; 02/06/2009 a las 11:58
  #2 (permalink)  
Antiguo 02/06/2009, 07:19
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con buscador interno PHP

Podrias modificar el codigo y ponerlo dentro de [PHP] [/ PHP]
  #3 (permalink)  
Antiguo 02/06/2009, 11:59
RTA
 
Fecha de Ingreso: junio-2009
Mensajes: 2
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problema con buscador interno PHP

Cita:
Iniciado por abimaelrc Ver Mensaje
Podrias modificar el codigo y ponerlo dentro de [PHP] [/ PHP]
hecho
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 16:36.