Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Me podrían ayudar a encontrar el error en el buscador?

Estas en el tema de Me podrían ayudar a encontrar el error en el buscador? en el foro de PHP en Foros del Web. Hola, quisiera pedirles ayuda para encontrar el error en un código php de un buscador. Lo que pasa es que funciona, encuentra resultados y el ...
  #1 (permalink)  
Antiguo 26/07/2014, 16:01
 
Fecha de Ingreso: mayo-2014
Mensajes: 11
Antigüedad: 9 años, 11 meses
Puntos: 0
Me podrían ayudar a encontrar el error en el buscador?

Hola, quisiera pedirles ayuda para encontrar el error en un código php de un buscador. Lo que pasa es que funciona, encuentra resultados y el paginador también funciona. L problema es que me sale un error al imprimir en la línea 42.
Código PHP:

 <?php
    
$button 
$_GET ['submit'];
$search $_GET ['search']; 



if(
strlen($search)<=1)
echo 
"La palabra a buscar es demaciado corta";
else{
echo 
"Usted a buscado <b>$search</b> <hr size='1'></br>";
mysql_connect("localhost","root","5579");
mysql_select_db("buscador");
    
$search_exploded explode (" "$search);
    
foreach(
$search_exploded as $search_each)
{
$construct="";
$x=0;
$x++;
if(
$x==1)

$construct .="title LIKE '%$search_each%'";
else
$construct .="AND title LIKE '%$search_each%'";
    
}
  
$constructs ="SELECT * FROM datos WHERE $construct";
$run mysql_query($constructs);
    
$foundnum mysql_num_rows($run);
    
if (
$foundnum==0)
echo 
"Lo sentimos, no encontramos resultados con <b>$search</b>.</br></br>";
else

echo 
"$foundnum Resultados encontrados!<p>";

$per_page 1;
$start $_GET['start'];
$max_pages ceil($foundnum $per_page);
if(!
$start)
$start 0;
$getquery mysql_query("SELECT * FROM datos WHERE $construct LIMIT $start, $per_page");

  
while(
$runrows mysql_fetch_assoc($getquery))
{
$title $runrows ['title'];
$desc $runrows ['description'];
$url $runrows ['url'];
   
echo 
"
<a href='$url'><b>$title</b></a><br>
$desc<br>
<a href='$url'>$url</a><p>
"
;
    
}
  
//Pagination Starts
echo "<center>";
  
$prev $start $per_page;
$next $start $per_page;
                       
$adjacents 3;
$last $max_pages 1;
  
if(
$max_pages 1)
{   
//previous button
if (!($start<=0)) 
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$prev'>Prev</a> ";    
          
//pages 
if ($max_pages + ($adjacents 2))   //not enough pages to bother breaking it up
{
$i 0;   
for (
$counter 1$counter <= $max_pages$counter++)
{
if (
$i == $start){
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'><b>$counter</b></a> ";
}
else {
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'>$counter</a> ";
}  
$i $i $per_page;                 
}
}
elseif(
$max_pages + ($adjacents 2))    //enough pages to hide some
{
//close to beginning; only hide later pages
if(($start/$per_page) < + ($adjacents 2))        
{
$i 0;
for (
$counter 1$counter + ($adjacents 2); $counter++)
{
if (
$i == $start){
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'><b>$counter</b></a> ";
}
else {
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'>$counter</a> ";

$i $i $per_page;                                       
}
                          
}
//in middle; hide some front and some back
elseif($max_pages - ($adjacents 2) > ($start $per_page) && ($start $per_page) > ($adjacents 2))
{
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=0'>1</a> ";
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$per_page'>2</a> .... ";
 
$i $start;                 
for (
$counter = ($start/$per_page)+1$counter < ($start $per_page) + $adjacents 2$counter++)
{
if (
$i == $start){
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'><b>$counter</b></a> ";
}
else {
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'>$counter</a> ";
}   
$i $i $per_page;                
}
                                  
}
//close to end; only hide early pages
else
{
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=0'>1</a> ";
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$per_page'>2</a> .... ";
 
$i $start;                
for (
$counter = ($start $per_page) + 1$counter <= $max_pages$counter++)
{
if (
$i == $start){
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'><b>$counter</b></a> ";
}
else {
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'>$counter</a> ";   

$i $i $per_page;              
}
}
}
          
//next button
if (!($start >=$foundnum-$per_page))
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$next'>Next</a> ";    
}   
echo 
"</center>";


?>
De antemano gracias y saludos!
  #2 (permalink)  
Antiguo 26/07/2014, 17:07
 
Fecha de Ingreso: julio-2014
Ubicación: Mexico
Mensajes: 3
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Me podrían ayudar a encontrar el error en el buscador?

seria mas facil si ayudaras poniendo cual es la linea 42. porque aqui es bastante complicado ver donde es mas o menos.

ademas especifica que tipo de error es.

Ayudanos a ayudarte.
  #3 (permalink)  
Antiguo 26/07/2014, 18:35
 
Fecha de Ingreso: mayo-2014
Mensajes: 11
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Me podrían ayudar a encontrar el error en el buscador?

Disculpa amigo. La linea 42 es:
Código PHP:
 $start $_GET['start']; 
Y en el navegador todo bien pero me sale un error con lo siguiente: Notice: Undefined index: start in C:/wampserver/www/carpeta/buscador.php on line 42
  #4 (permalink)  
Antiguo 26/07/2014, 18:53
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 6 meses
Puntos: 38
Respuesta: Me podrían ayudar a encontrar el error en el buscador?

No esta recibiendo ningún valor por get de la pagina por la que debe empezar a paginar.

Código PHP:

$start 
$_GET['start']; 
Haz un if donde si no llega nada $start valga 1 y si llega que valga el get que le envías.
  #5 (permalink)  
Antiguo 26/07/2014, 19:52
 
Fecha de Ingreso: julio-2014
Ubicación: Mexico
Mensajes: 3
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Me podrían ayudar a encontrar el error en el buscador?

En realidad este no es un error como tal... podrias desactiviar esas "Notice" desde el PHP.ini porque la verdad. en mi experiencia personal. no significan nada.

Bien una forma de evitarlo seria definiendo la variable como NULL.. en un principio :)
  #6 (permalink)  
Antiguo 26/07/2014, 20:25
 
Fecha de Ingreso: mayo-2014
Mensajes: 11
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Me podrían ayudar a encontrar el error en el buscador?

@Saulk22 Pero que pasaría al momento de quererlo subir a un servidor? No me lanzaría el mismo error o algo asi?
Disculpa mi ignorancia, soy principiante!
  #7 (permalink)  
Antiguo 26/07/2014, 21:43
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Me podrían ayudar a encontrar el error en el buscador?

De plano te aconsejo no seguir el consejo de SaulK22, pues esas notificaciones son las que te avisan cuando estás cometiendo un error.

Prueba haciendo esto y luego nos muestras el resultado:
Código PHP:
Ver original
  1. var_dump($_GET);

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #8 (permalink)  
Antiguo 26/07/2014, 21:54
 
Fecha de Ingreso: mayo-2014
Mensajes: 11
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Me podrían ayudar a encontrar el error en el buscador?

En que línea lo pongo??? como ya dije, soy principiante!
  #9 (permalink)  
Antiguo 26/07/2014, 22:17
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Me podrían ayudar a encontrar el error en el buscador?

Da igual el número de línea que elijas, pero de preferencia, antes de los demás procesos.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #10 (permalink)  
Antiguo 26/07/2014, 22:28
 
Fecha de Ingreso: mayo-2014
Mensajes: 11
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Me podrían ayudar a encontrar el error en el buscador?

No funciona, aparece el mismo error y una nota extra arriba del tamaño del array!
  #11 (permalink)  
Antiguo 27/07/2014, 01:48
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Me podrían ayudar a encontrar el error en el buscador?

Prueba cambiando:
Código PHP:
$start $_GET['start']; 
Por
Código PHP:
$start = (isset($_GET['start']) && ($_GET['start'] != ''))? $_GET['start']:1
Esto lo que ara es que si no metes ningún valor a start le asignara el 1 por defecto.

Consejo: Nunca desactives los avisos de error, aunque aquí algunos te digan que lo hagas, ya que la mejor manera de que no salgan es tratar de entender el porque te salen y ver como poder resolverlos, ya que un simple error puede hacer que la página/as que hagas no te funcionen o no lo hagan como debieran. Aparte de que aprenderás a ir corrigiéndolos sobre la marcha.

Una buena página es aquella que no contiene errores de programación y que tras realizarle las pruebas mas "duras" como por ejemplo tratar de meterle valores que no corresponden siga funcionando porque ya hayas contemplado esa posibilidad.

Y otra cosa mas, cuando obtengas datos ya sea vía GET o POST, etc..., trata de filtrarlos para que no te hagan inyecciones de código que puedan vulnerar tu trabajo.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #12 (permalink)  
Antiguo 27/07/2014, 12:49
 
Fecha de Ingreso: mayo-2014
Mensajes: 11
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Me podrían ayudar a encontrar el error en el buscador?

Wooooooouuu, eres grande amigo @bookmaster. Ya corre sin problemas. Muchas gracias por la ayuda! Y también a todos los que respondieron!!

Etiquetas: encontrar, mysql, select
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 01:42.