Foros del Web » Programando para Internet » PHP »

Buscar Datos

Estas en el tema de Buscar Datos en el foro de PHP en Foros del Web. Hola; Hace tiempo que no ponia ninguna duda, pero me acaba de surgir una. Dentro de mi sitio, voy a poner un motor de busqueda ...
  #1 (permalink)  
Antiguo 01/02/2002, 15:03
 
Fecha de Ingreso: enero-2002
Mensajes: 31
Antigüedad: 22 años, 3 meses
Puntos: 0
Buscar Datos

Hola;

Hace tiempo que no ponia ninguna duda, pero me acaba de surgir una.

Dentro de mi sitio, voy a poner un motor de busqueda para documentos que guardare (hare la base de datos..), pero lo que quiero saber, es como puedo hacerle para que los usuarios busquen dentro de esa base de datos, por diferentes secciones: por titulo o por materia, y que los resultados se impriman. Pero si son más de 10 resultados se genere una segunda página (osea 10 resultados por página)

Alguien sabe como hacerlo?

Plz! :)
  #2 (permalink)  
Antiguo 22/12/2004, 17:50
 
Fecha de Ingreso: octubre-2004
Mensajes: 168
Antigüedad: 19 años, 6 meses
Puntos: 0
Deberías poner campos check para seleccionar porque se busca, entonces pasas esas variables a tu código php, mediante $_POST['NombreVariable'], consultas el valor de los check y harías mediante condicionales búsquedas en la base de datos, es decir consultas, luego si la quieres imprimir por ejemplo en tablas, pues sería los resultados que has obtenidos ir cogiendo cada uno e imprimirlo, consultas antes el valor mysql_num_rows si es menor de diez haces el método de impresión normal, sino generas un enlace nuevo e imprimes las restantes.
  #3 (permalink)  
Antiguo 22/12/2004, 23:09
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 21 años, 1 mes
Puntos: 0
bueno, yo te doy una mano con el paginador, es muy fácil. Son 2 páginas, una página que genera el codigo PHP que te divide la consulta que hagas a la base de datos en varias páginas... y la otra página es la que muestra: "1" "2" "3" Siguiente

script-genera-paginas.php

<?php
$maxresult = 16;
//16 es el numero de los resultados que queres que te tire, en tu caso, seria "10"
$result = mysql_query( $consulta ) or error( mysql_error() );
$totalresult = mysql_num_rows( $result );
if( $totalresult <= $maxresult ) $totalPages = 1;
elseif( $totalresult % $maxresult == 0 ) $totalPages = $totalresult / $maxresult;
else $totalPages = ceil( $totalresult / $maxresult );
if( !isset( $page ) ) $page = 1;
elseif( $page > $totalPages || $page < 1 ) $page = 1;
if( $totalresult == 0 ) $resultStart = 0;
else $resultStart = $maxresult * $page - $maxresult + 1;
if( $page == $totalPages ) $resultEnd = $totalresult;
else $resultEnd = $maxresult * $page;
$prePage = $page - 1;
$nextPage = $page + 1;
$initresult = $maxresult * $page - $maxresult;
$consulta = mysql_query( $consulta." LIMIT $initresult, $maxresult" ) or error( mysql_error() );
?>

script-muestra-paginas.php

<?php
// Muestra Paginador
if ($totalPages <> 1) {
?>
<table width="100%" border="0" cellpadding="5" cellspacing="1" align="center">
<tr>
<td align="center"><p>
<?
if( $page != 1 ) echo "&nbsp;<a href=\"$PHP_SELF?idcat=$idcat&page=$prePage\">Ante rior</a>&nbsp;";
for( $i = 1; $i <= $totalPages; $i++ )
{
if( $page == $i ) echo " $i ";
else echo "&nbsp;<a href=\"$PHP_SELF?idcat=$idcat&page=$i\"><b>$i</b></a>&nbsp;";
}
if( $page != $totalPages ) echo "&nbsp;&nbsp;<a href=\"$PHP_SELF?idcat=$idcat&page=$nextPage\">Sig uiente</a>&nbsp;";
if ( $initresult + $maxresult > $totalresult ) {
$tope = $totalresult;
} else {
$tope = $initresult + $maxresult;
}
?>
<?php
$tabla = $dbPref."fotosbolichescat";
$consulta = mysql_query ("SELECT * FROM $tabla WHERE idcat = '$idcat' ") or error (mysql_error() ) ;
$renglon = mysql_fetch_array( $consulta );
?>
&nbsp;&nbsp; [ <?php echo $initresult + 1 ?> a <?php echo $tope ?> de <?php echo $totalresult ?> Fotos de <?php echo $renglon[categoria] ?> ]</p>
</td>
</tr>
</table>
<?php } ?>

bueno te explico un poco este ultimo script... es que lo saque tal cual esta de uno mio.
el $idcat del ejemplo que te pongo es el id que vos tenes que poner, digamos el id de la tabla que estes consultando... el id unico e irrepetible.

bueno, ahi tambien te daras cuenta que yo hago una consulta y todo lo demás básico, bueno, eso lo cambias por tus datos y listo.

Esto no termino aca, sino que sigue lo más importante, digamos que es la consulta principal... que es la que difine el LIMIT en la consulta.

Cuando haces la consulta y a veces usabas la funcion LIMIT, bueno, obviala. Y tambien, cuando hagas la consulta, (estoy hablando de la pagina que queres que tenga el paginador, no con los ejemplos de arriba). Lo tenes que hacer sin la funcion mysql_query... bueno, por si no se me entendio nada, te dejo el ejemplo.

pagina_donde_muestro_los_resultados.php //que nombre, no?

<?php
$tabla = $dbPref."fotosboliche";
$consulta = "SELECT * FROM $tabla WHERE idcat = '$idcat' ORDER BY `idfoto` DESC ";
require ("paginas-fotos.php"); //mira aca, estoy llamando al script que hicimos arriba
//despues aca le haces un while normal, definis el mysql_fetch_array con el $consulta como si fuera todo normal...

Nota: fijate ahora que en $consulta no tiene el mysql_query que es lo que te explicaba arriba.

Ultimo paso:

adonde queres que te muestre el paginador: "1" "2" "3" Siguiente, o diferente... tenes que incluir en el lugar de la pagina que desees...

haciendo: <?php require ("paginas-fotos-muestra.php") ?>



Bueno, espero que se haya entendido, si tenes alguna otra duda, solo hacela, te ayudaremos en lo posible, ya que a mi me ayudaron tanto, yo quiero devolver eso...

Saludos y felices fiestas...
__________________
Ignacio
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:51.