Autor
|
Tema: Sistema de busqueda!!! no me da!!!!! (Cerrado) (Leído 3,066 veces)
|
Zeroql
Desconectado
Mensajes: 957
Todo lo k sucede sucede por una razon
|
Buenas bueno estoy ahora haciendo un sistema de busqueda para la pagina web, con un sistema de multipaginas para mostrar solo 10 resultados por pagina, bueno eso es lo que esta en la configuracion de la base de datos. (el valor se puede cambiar) pero no me muestra los resultados. aqui dejo el code que estoy haciendo para ver k problema es el k tengo.... <? //if (!isset($_POST['s'])) { $msg="error no se ha encontrado el meotod get"; exit(); } include ('adm/conexion.php'); include ('adm/rconfig.php'); $itemv=readconfig('search'); //saber cuantos resultados se van a ver. //TODO ESTA ZONA ES PARA SABER CUANTOS RESULTADOS SE VAN A MOSTRAR $page=0; $N=0; $numrows=0; $msg="ninguno";$cont=0; if (isset($_GET['p'])) { $page=trim($_GET['p']); } else { $page=1; } //Mostrar desde que resultados dependiendo del numero de pagina en la que se encuentre switch ($page) { case 1: $N=1; break; case 2: $N=11; break; case 3: $N=21; break; case 4: $N=31; break; case 5: $N=41; break; case 6: $N=51; break; case 7: $N=61; break; case 8: $N=71; break; case 9: $N=81; break; case 10: $N=91; break; } //Un sistema para el contador de los numeros mostrados //************************************************************************* $resultN=($N-1)+$itemv; if ($_GET['s']!=NULL) { $link=conectarse(); $result=mysql_query("SELECT * FROM items WHERE search LIKE '%" .$_GET['s']. "%'"); $idx=0; echo $row['codigo']; echo $row['search']; $codigo[$idx]=$row['codigo']; $txtserach[$idx]=$row['search']; $cont=$idx+1; $idx++; } } else { $msg="No hay coincidencias en la palabra buscada."; } } ?> <h2>Resultados de la busqueda</h2> <? if ($msg!="") { $final=($cont % $resultN); for($idx=0;$idx<$final;$idx++) { echo "<div class='marker'><div class='wrapper'>"; echo "<p class='pad_bot2'><a href='showitem.php?cod=".$codigo[$idx]."'>".$txtsearch[$idx]."</a></p>"; echo "</div></div>"; } echo "<p class='pad_bot2'>"; if ($page>1) { echo "Anterior "; } $numpages=($numrows % $itemv); for ($idx=1;$idx<=$numpages;$idx++) { echo "<a href='search.php?s=".$_GET['s'].",p=".($idx)."'> <strong>".$idx."</strong> </a>"; } if ($page<$numpages) { echo "<a href='search.php?s=".$_GET['s'].",p=".($page+1)."'>Siguiente</a>"; } echo "</p>"; } else { echo "<p class='pad_bot2'>".$msg."</p>"; } ?>
no he podido saber cual es el problema pero no me imprime $msg, asi que pienso que si hace la consulta y trae resultados. alguien le ve el problema??? les agradezco la ayuda
|
|
« Última modificación: 28 Junio 2011, 16:24 pm por Zeroql »
|
En línea
|
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo. /.-ZEROQL.-\ ----- #937675#
|
|
|
Nakp
casi es
Ex-Staff
Desconectado
Mensajes: 6.336
he vuelto :)
|
jeje que desmadre xD no seria mas sencillo usar una consulta con limit y offset? y el offset seria el numero de pagina*limit
|
|
|
En línea
|
Ojo por ojo, y el mundo acabará ciego.
|
|
|
Zeroql
Desconectado
Mensajes: 957
Todo lo k sucede sucede por una razon
|
Nakp estuve investigando el limit y el offset y solo encuentro errores ocasionados, no veo ni informacion en php.net me podrias dar n ejemplo pequeño o un lugar donde encuentre info???
te lo agradezco
|
|
|
En línea
|
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo. /.-ZEROQL.-\ ----- #937675#
|
|
|
EFEX
Desconectado
Mensajes: 1.171
"Dinero Facil"
|
Se usa de la siguiente forma en una consulta: SELECT * FROM `user` WHERE 1=1 LIMIT 0,10 Donde LIMIT 0(Offset), 10(Limite), cuando pensas en paginaciòn esta es la consulta que tenes que utilizar. Prueba haciendo consultas desde phpmyadmin, para entenderlo mejor
|
|
|
En línea
|
|
|
|
Zeroql
Desconectado
Mensajes: 957
Todo lo k sucede sucede por una razon
|
Bueno ya implemente el code que uds me dieron por cierto muchas gracias por el limit, no lo conocia en SQL. el problema es que ahora no me muestra ningun resultado de la busqueda bueno dejo el code completo de la pagina y me digan que tengo mal. <? $msg=NULL; $page=0; $rowtot=NULL;$total=0; if (!isset($_GET['s'])) { $msg="Error no se ha encontrado el metodo get"; exit(); } include ('adm/conexion.php'); include ('adm/rconfig.php'); $limit=(int)readconfig('search'); //saber cuantos resultados se van a ver. $page=(int )trim($_GET['p']); } else { $page=1; } $offset = ($page-1) * $limit; //La consulta SQL y paginacion //************************************************************************* if ($_GET['s']!=NULL) { $link=conectarse(); $rs = mysql_query("SELECT SQL_CALC_FOUND_ROWS * FROM items WHERE search LIKE '%".$_GET['s']."%' LIMIT ".$offset.",".$limit); if ($rs){ $total = $rowtot["total"]; } else { $msg="No hay coincidencias para la palabra buscada."; } } else { $msg="No se ha definido un texto para buscar."; } ?> <h2>Resultados de la busqueda</h2> <? if ($msg!="") { { echo "<div class='marker'><div class='wrapper'>"; echo "<p class='pad_bot2'><a href='showitem.php?cod=".$row['codigo']."'>".$row['search']."</a></p>"; echo "</div></div>"; } echo "<p class='pad_bot2'>"; if ($page>1) { echo "<a href='search.php?s=".$_GET['s'].",p=".($page-1)."'>Anterior</a>"; } $npages=ceil($total/$limit); for ($idx=1;$idx<=$npages;$idx++) { if ($page==$idx) { echo "<a href='search.php?s=".$_GET['s'].",p=".($idx)."'><strong><font color='#0033FF'> ".$idx."</font></strong> </a>"; }else { echo "<a href='search.php?s=".$_GET['s'].",p=".($idx)."'> <strong>".$idx."</strong> </a>"; } } if ($page<$npages) { echo "<a href='search.php?s=".$_GET['s'].",p=".($page+1)."'>Siguiente</a>"; } echo "</p>"; } else { echo "<p class='pad_bot2'>".$msg."</p>"; } ?>
ejecute la consulta en mysql bajo phpmyadmin y me da perfectamente... el problema es que tampoco me imprime lo de la numeracion de las paginas... que tengo mal ahora????
|
|
|
En línea
|
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo. /.-ZEROQL.-\ ----- #937675#
|
|
|
Zeroql
Desconectado
Mensajes: 957
Todo lo k sucede sucede por una razon
|
ok ya corregi el error. radicaba cuando se comprobaba la variable $msg if ($msg!="")
resulta que la varible no se estaba tomando en cuenta, asi que la saque aparte e hice esto: if ($msg!="" or $msg!=NULL){ echo "<p class='pad_bot2'>".$msg."</p>"; exit(); }
algo mas que tenia malo era el paso de la variable p lo hacia con una coma cuando al pasar variables con GET se dede separar con & echo "«<a href='search.php?s=".$_GET['s']."&p=".($page-1)."'>Anterior</a> "; GRACIAS A TODOS POR SU COLABORACION. :xD :D
|
|
|
En línea
|
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo. /.-ZEROQL.-\ ----- #937675#
|
|
|
Nakp
casi es
Ex-Staff
Desconectado
Mensajes: 6.336
he vuelto :)
|
es mas efectivo comprobar la variable con la funcion empty? Si es un array vacio, false, null, 0, '' devolvera true
|
|
|
En línea
|
Ojo por ojo, y el mundo acabará ciego.
|
|
|
|
|