Foros del Web » Programando para Internet » PHP »

mi buscador muestra todo lo de la base de datos no lo que busco ayudaa :S

Estas en el tema de mi buscador muestra todo lo de la base de datos no lo que busco ayudaa :S en el foro de PHP en Foros del Web. hola como hago para que esto busque bien, por que pongo a buscar algo y muestra todo lo de la base de datos no lo ...
  #1 (permalink)  
Antiguo 20/11/2011, 12:00
Avatar de lukazz  
Fecha de Ingreso: marzo-2011
Mensajes: 88
Antigüedad: 13 años
Puntos: 3
mi buscador muestra todo lo de la base de datos no lo que busco ayudaa :S

hola como hago para que esto busque bien, por que pongo a buscar algo y muestra todo lo de la base de datos no lo que busco :S este es el codigo:


Código PHP:
<?php
require('conexion.php');
$RegistrosAMostrar=4;

//estos valores los recibo por GET
if(isset($_GET['pag'])){
    
$RegistrosAEmpezar=($_GET['pag']-1)*$RegistrosAMostrar;
    
$PagAct=$_GET['pag'];
//caso contrario los iniciamos
}else{
    
$RegistrosAEmpezar=0;
    
$PagAct=1;
    
}
$Resultado=mysql_query("SELECT * FROM repro ORDER BY nombre LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$con);
echo 
"<table width='100%' height='140' border='0' align='center' >
  <MM_REPEATEDREGION SOURCE='@@rs@@'><MM:DECORATION OUTLINE='Repetir' OUTLINEID=1>
    <tr></tr></MM:DECORATION></MM_REPEATEDREGION>
  <tr>
    <td width='100' height='43'></td>
    <td width='720' ></td>
  </tr>"
;
while(
$MostrarFila=mysql_fetch_array($Resultado)){
    echo 
"<tr>";
    echo 
'<td style="border: solid 1px #d2d2d2;"><p><a href="http://www.web/pelicula/'.$MostrarFila['exten'].'" ><img src="http://www.web/cartelera/'.$MostrarFila['exten'].'" width="114" height="151" title="'$MostrarFila['nombre'].'" /></a></p></td>';
    echo 
'<td style="border: solid 1px #d2d2d2; font-family: Verdana, Geneva, sans-serif; font-weight: bold;"><span class="linkk"><p><a href="http://www.web/pelicula/'.$MostrarFila['exten'].'">'.$MostrarFila['nombre'].'</a></p></span>
      <p><br/>
        <span class="desc">'
.$MostrarFila['descripcion'].'</span></td>';
    echo 
"</tr>";
}
echo 
"</table>";
//******--------determinar las páginas---------******//
$NroRegistros=mysql_num_rows(mysql_query("SELECT * FROM repro",$con));

$PagAnt=$PagAct-1;
$PagSig=$PagAct+1;
$PagUlt=$NroRegistros/$RegistrosAMostrar;

//verificamos residuo para ver si llevará decimales
$Res=$NroRegistros%$RegistrosAMostrar;
// si hay residuo usamos funcion floor para que me
// devuelva la parte entera, SIN REDONDEAR, y le sumamos
// una unidad para obtener la ultima pagina
if($Res>0$PagUlt=floor($PagUlt)+1;

//desplazamiento
echo "<a onclick=\"Pagina('1')\">Primero</a> ";
if(
$PagAct>1) echo "<a onclick=\"Pagina('$PagAnt')\">Anterior</a> ";
echo 
"<strong>Pagina ".$PagAct."/".$PagUlt."</strong>";
if(
$PagAct<$PagUlt)  echo " <a onclick=\"Pagina('$PagSig')\">Siguiente</a> ";
echo 
"<a onclick=\"Pagina('$PagUlt')\">Ultimo</a>";
?>
lo encontre en internet es un codigo de paginacion
  #2 (permalink)  
Antiguo 20/11/2011, 12:53
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 9 meses
Puntos: 641
Respuesta: mi buscador muestra todo lo de la base de datos no lo que busco ayudaa :S

Exiten muchas formas de hacer buscadores y toda la magia esta en la consulta y esta consulta:

Código MySQL:
Ver original
  1. SELECT * FROM repro ORDER BY nombre LIMIT

te va a mostrar siempre todo.

tienes que pasarle un parametro por ejemplo

Código MySQL:
Ver original
  1. SELECT * FROM repro WHERE nombre LIKE '%perro%' ORDER BY nombre LIMIT

y te mostrará solo aquellos nombres que contengan 'perro' , esa es la consulta más basica de un buscador, existe lo que se llama match against y además se puede usar regexp.

o incluso un procedure de mysql tambien :)

Etiquetas: dedatos..., labase...., muestra...., toda..., buscadores
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 19:45.