Foros del Web » Programando para Internet » PHP »

Busqueda en MySQl con PHP... AYUDA !!!!!!!!!

Estas en el tema de Busqueda en MySQl con PHP... AYUDA !!!!!!!!! en el foro de PHP en Foros del Web. Llevo varios días ya tratando de arreglar este problema y no he encontrado la solución, por favor ayudenme... 1. Envío 3 variables desde página1.htm ($motivo, ...
  #1 (permalink)  
Antiguo 25/03/2004, 07:06
 
Fecha de Ingreso: febrero-2004
Mensajes: 22
Antigüedad: 13 años, 9 meses
Puntos: 0
Busqueda en MySQl con PHP... AYUDA !!!!!!!!!

Llevo varios días ya tratando de arreglar este problema y no he encontrado la solución, por favor ayudenme...

1. Envío 3 variables desde página1.htm ($motivo, $tipo y $comuna)
2. Las recibo con recibe.php que tiene el sig. código:

<?
if (!($limit)){
$limit = 2;}
if (!($page)){
$page = 0;}

$link= mysql_connect("localhost","nobody", "") or die("No se pudo conectar a la base");
mysql_select_db("mibase);

$query2 = "SELECT * FROM mitabla WHERE (operacion='$motivo') AND (tipo='$tipo') AND (comuna='$comuna')";
$query1=$query2;
$query2=$query1."ORDER BY precio DESC limit $page,$limit";

$numresults=mysql_query($query1);
$results = mysql_query($query2);
$numrows = mysql_num_rows($numresults);

if ($numrows == 0){
echo("No hay registros en este momento :(");
exit();

}
...
...
?>

Entonces que pasa, las variables las recibo bien, no hay problema en eso, pero como se dan cuenta el código me ordena por página la cantidad de resultados que yo quiera, en este caso le puse 2 ($limit = 2) por que estoy probando, y aparece el botón "siguiente", "atras", lo típico... pero aca se produce el poroblema ya que aunque reconnoce que rescato de la BD 3 registros (en la primera pag. aparecen 2) apreto "siguiente" y em arroja el mensaje No hay registros en este momento :( que es lo que aparece en la parte con negrilla en el código.

Alguien tiene una idea de que puede ser????

Cualquier ayuda será bien recibida, GRACIAS.

RMelo
  #2 (permalink)  
Antiguo 25/03/2004, 08:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Te faltó poner el resto del código donde haces los links de la paginación ...

Pero, el problema de "perdida" de variables sucede por qué al parecer no las propagas en los links de la paginación ..

Ejemplo:

nose.php?page=<? echo $page ?>&limit=<?echo $limit ?>&motivo=<? echo $motivo ?>&..resto de varibles que necesites propagar

Las variables marcadas en rojo son las que usará (supongo) los links de la paginación .. y las marcadas en azul serán el resto de variables que necesites conservar su valor en las diferentes páginas (a este termino/funcionalidad le llaman "propagar" variables)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 25/03/2004, 08:32
 
Fecha de Ingreso: febrero-2004
Mensajes: 22
Antigüedad: 13 años, 9 meses
Puntos: 0
Este es le código que uso en pasar a la otra pagina:

<?
if ($page != 0) {
$back_page = $page - $limit;
echo("<a href=\"resp_busca.php?page=$back_page&limit=$limit \" class=\"paginas\">Atr&aacute;s</a> \n");}

for ($i=1; $i <= $pages; $i++) {
$ppage = $limit*($i - 1);
if ($ppage == $page){
echo("<span class=\"texinfo\">$i</span> \n");}
else{
echo("<a href=\"resp_busca.php?page=$ppage&limit=$limit\" class=\"paginas\">$i</a> \n");}
}

if (!((($page+$limit) / $limit) >= $pages) && $pages != 1) { $next_page = $page + $limit;
echo(" <a href=\"resp_busca.php?page=$next_page&limit=$limit \" class=\"paginas\">Siguiente</a>\n");}
?>

Este es Cluster el código que uso. Ahora, no sé si el problema este acá. Por ejemplo hice una modificación en la sentencia SELECT y puse que me:

SELECT * FROM mitabla WHERE (precio > 0)

o sea, me elige todos los registros y ahí funciona sin problemas el "siguiente", etc.

Gracias por tu ayuda, espero tu comentario.
  #4 (permalink)  
Antiguo 25/03/2004, 08:57
 
Fecha de Ingreso: febrero-2004
Mensajes: 22
Antigüedad: 13 años, 9 meses
Puntos: 0
Cluster agregue las variable como me decias:

<a href=\"resp_busca.php?page=$next_page&limit=$limit &operacion=$motivo&tipo=$tipo&comuna=$comuna>Sigui ente</a>

Pero me sigue arrojando el mismo error...

  #5 (permalink)  
Antiguo 25/03/2004, 09:45
 
Fecha de Ingreso: febrero-2004
Mensajes: 22
Antigüedad: 13 años, 9 meses
Puntos: 0
La dirección para verlo es:

www.tinarodriguez.cl/demo

Desde ahi ir a "Busqueda de Propiedad".

Luego elegir:

"Deseo Comprar"
"Casas"
"Rancagua" (escribir en cuadro de texto)

Deben ser esos 3 parametros por que hay 3 registros en la BD mientras.

Rmelo
  #6 (permalink)  
Antiguo 25/03/2004, 10:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno . la base es esa que te comenté .. En principio debes propagar todas las variables que necesite tu consulta en los links de paginado .. sino, se pierden.

Revisa (mira en tu código ver-> codigo fuente o fijate cuando pases por el link en tu barra de estado ..) que el link se forma correctamente con los valores que deben tener tus variables ...

Personalmente no me gusta nada asumir las variables externas como globales como así lo usas tu... Si usas PHP 4.1.0 en adelante deberías usar los arrays superglobales: $_GET .. $_POST .. etc para tomar tus variables según el método de envio (revisa las FAQ's del foro) ...

Y sentencias así ...:

if (!($limit)){

deberias usar:

if (!empty($_GET['limit'])){

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 25/03/2004, 10:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Otro detalle ..

Aunque usas parentesis .. sería recomendable usar espacios para separar instrucciones SQL:

$query2=$query1." ORDER BY precio DESC limit $page,$limit";

(fijate en el espacio entre la primera " y el ORDER ...)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 25/03/2004, 10:53
 
Fecha de Ingreso: febrero-2004
Mensajes: 22
Antigüedad: 13 años, 9 meses
Puntos: 0
Cluster, esta solucionado el problema, un detalle fue lo que dijiste de pasar las variables (...pagina.php?campo1=var1&campo2=var2... ).

Lo otro es que cambie lo siguiente:

SELECT * FROM mitabla WHERE (operacion='$motivo') AND (tipo='$tipo') AND (comuna='$comuna'

lo cambie a:

SELECT * FROM mitabla WHERE operacion LIKE '%$motivo%' AND tipo LIKE '%$tipo%' AND comuna LIKE '%$comuna%'

Los 2 cambios me dieron resultado.

Ahora, hay pequeño detalle, al abrirse la página que muestra los resultados obtenidos de la BD seleccionados según el SELECT aparecen x ej. 3 resultados, pero si yo "Actualizo" la página me arroja todos los registros que hay en la BD si discriminar según las variables. ¿se entiende?...

Gracias, salu2



¿se entiende?
  #9 (permalink)  
Antiguo 25/03/2004, 11:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Y .. desde pagina1.html... como pasas esas 3 variables (de filtrado para tu consulta SQL)?

Usas método POST en un formulario? ... En teoría si pasan por GET (a no ser que tengas algo más por médio que reinicies las variables en tu código ..) debería funcionar sin problemas ante una recarga de págnia ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 15:45.