Foros del Web » Programando para Internet » PHP »

Problemas seleccionando registros

Estas en el tema de Problemas seleccionando registros en el foro de PHP en Foros del Web. Estoy utilizando un código de paginación de Desarrolloweb (Paginacion con PHP y MySQL. Ejemplo 2). Funciona bien pero no consigo hacer una selección de registros ...
  #1 (permalink)  
Antiguo 04/11/2003, 09:05
 
Fecha de Ingreso: octubre-2003
Mensajes: 10
Antigüedad: 20 años, 6 meses
Puntos: 0
Problemas seleccionando registros

Estoy utilizando un código de paginación de Desarrolloweb (Paginacion con PHP y MySQL. Ejemplo 2).

Funciona bien pero no consigo hacer una selección de registros sobre la tabla, siempre me da el total de registros.

Tengo una tabla con cinco campos :
soporte char(1)
auttit varchar (255)
pub varchar (255)
mat1 varchar (255)
mat2 Varchar (255)

El código modificado que estoy utilizando es:

Código PHP:
               $criterio "";
        if (
$_GET["criterio"]!=""){
    
$txt_criterio $_GET["criterio"];
    
$criterio "WHERE mat1 = 'cine"  $txt_criterio "cine'";
}


    
$sql="SELECT * FROM lampedusa.novetats" .$criterio;
    
$res=mysql_query($sql);
    
$numeroRegistros=mysql_num_rows($res);
    if(
$numeroRegistros<=0
Agradecería alguna ayuda sobre que es lo que esta mal.
  #2 (permalink)  
Antiguo 04/11/2003, 09:15
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

El problema puede ser que no propages el criterio en los links de la paginacion. Los links de las paginas deben ser del estilo:
Código PHP:
<a href="paginacion.ph?pagina=<?php echo $i?>&criterio=<?php $txt_criterio?>">
O como lo generes.

Tambien date cuenta que solo recoges el criterio de la URL. Si llegas a la paginacion desde un formulario cuyo campo sea 'criterio', este codigo solo te funcionara si el method del formulario es GET. Si es POST, ademas de leer $_GET, debes comprobar $_POST, y coger el valor correspondiente.

Tambien por paranoias mias, te recomendaria que no llamases igual la variable $criterio y el parametro $_GET['criterio']. Mas que nada, porque no se exactamente como estan relacionadas ambas variables en caso de register_globals a ON. Quizas apuntan al mismo "hueco" de memoria, y si cambias una cambias la otra. Y como empiezas con un $criterio="", puede que estes borrando el contenido de $_GET['criterio'] (luego intento comprobar este extremo).

Espero no haberte liado mas.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 04/11/2003, 09:25
 
Fecha de Ingreso: febrero-2003
Mensajes: 9
Antigüedad: 21 años, 2 meses
Puntos: 0
normalmente se hacen dos consultas...

por ejemplo, el primero para sacar todas los registros:
Código PHP:

SELECT COUNT
(*) AS total FROM tabla
$totalpages 
ceil($counter[total]/$perpage); 
La segunda consulta debe ser normal, pero poniendo el limite:

LIMIT $startat,$perpage

es decir,

Código PHP:
if ($perpage=="") {        $perpage 10;
}
if (
$page=="") {
$page 1;
}
$startat = ($page-1)*$perpage;

//seleccion de la segunda tabla
SELECT  FROM tabla
WHERE sentencia
LIMIT $startat
,$perpage 
Finalmente la navegacion...

Código PHP:
if ($page!=1) {
$prv $page-1;
echo 
"<input type='button' class='button' value='&laquo; Primera Página' onclick=\"window.location='archivo.php?perpage=$perpage&page=1'\">",
echo 
"<input type='button' class='button' value='&lt; Página Previa' onclick=\"window.location='archivo.php?perpage=$perpagepage=$prv'\">"
}

if (
$page!=$totalpages) {
$nxt $page+1;
echo 
"<input type='button' class='button' value='Siguiente Página &gt;' onclick=\"window.location='archivo.php?perpage=$perpage&page=$nxt'\">",
echo 
"<input type='button' class='button' value='Ultima Página &raquo;' onclick=\"window.location='archivo.php?perpage=$perpage&page=$totalpages'\">"


Última edición por livedev; 04/11/2003 a las 09:30
  #4 (permalink)  
Antiguo 05/11/2003, 02:37
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Hay un errorcito... deja espacio antes del WHERE, así:

$criterio = " WHERE mat1 = ...

Luego, haz un un echo a tu consulta para ver que esté bien escrita. Así:
$sql="SELECT * FROM lampedusa.novetats" .$criterio;
echo $sql;

Revisa eso a ver qué pasa.

Saludos
  #5 (permalink)  
Antiguo 05/11/2003, 12:29
 
Fecha de Ingreso: octubre-2003
Mensajes: 10
Antigüedad: 20 años, 6 meses
Puntos: 0
He camabiado varias veces la sintaxis de búsqueda sin encontar la solución.

He intentado la solución que me propones lo he modificado así:
Código PHP:

<?
               $criterio 
"";
        if (
$_GET["criterio"]!=""){
    
$txt_criterio $_GET["criterio"];
    
$criterio 'WHERE 1 AND `soporte` like \'g\'  . $txt_cerca . \'g\'';
}


    
$sql="SELECT * FROM lampedusa.novetats" .$criterio;
        echo 
$sql;
?>
Pero el resultado que tengo cuando lo ejecuto en el servidor:

SELECT * FROM lampedusa.novetats

Significa que no recoge ningún resultado $sql ?
  #6 (permalink)  
Antiguo 05/11/2003, 14:44
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Bien, empecemos por el principio.

Primero: ¿Como llegas a la pagina de resultados? ¿Desde un formulario? Si es asi, pon el codigo del formulario. ¿Desde un link? Pon el link que usas.

Puede que la forma de llegar no sea correcta.

Segundo: Pon ese codigo asi:
Código PHP:
<?

               $where 
"";

        if (
$_GET["criterio"]!=""){

    
$txt_criterio $_GET["criterio"];

    
$where " WHERE 1 AND `soporte` like 'g"  $txt_criterio "g'";

}





    
$sql="SELECT * FROM lampedusa.novetats " .$where;

        echo 
$sql;

?>
y veamos que te dice ahora.

Tercero: Pon el codigo que usas para crear los links a las distintas paginas. Puede que no estes propagando bien los valores.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 06/11/2003, 01:47
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
mmm josemi:
Estuve probando. Puse el register_globals en ON... y me puse a juguetear con los nombres de variables.
La verdad no hubo ningún conflicto.
Yo mandé de un formulario un input name="varia" value="valor1"
al recoger
echo $varia;//imprimió "valor1"
echo $_POST['varia']//imprimió "valor1"

y si hago:
$varia="otrovalor";
echo $varia;//imprime "otrovalor"
echo $_POST['varia']//sigue imprimiendo "valor1"

O sea que el cambio en una no cambia a la otra.

Saludos
  #8 (permalink)  
Antiguo 06/11/2003, 01:57
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Jorka, si sólo te imprime:
SELECT * FROM lampedusa.novetats
y nada de lo que sigue (WHERE... etc)

Lo que está pasando es que no entra en el if...
O sea que tu variable $criterio sigue siendo una cadena vacía.

Para poder ayudarte a resolver eso, postea los datos que te pidió josemi:
-Si vienen de un formulario, el método del formulario debe ser "get". Y el campo del formulario de donde viene la variable "criterio" debe estar exactamente igual(minúsculas).
-Si lo mandas por url, entonces asegúrate de pasar la variable algo así:
archivo.php?criterio=loquesea

Si revisaste y todo parece estar bien. Entonces postea esas líneas que te indiqué.

Saludos
  #9 (permalink)  
Antiguo 06/11/2003, 09:06
 
Fecha de Ingreso: octubre-2003
Mensajes: 10
Antigüedad: 20 años, 6 meses
Puntos: 0
He estado haciendo algunas modificaciones según me indicais en los post pero si ningún resultado positivo.
El resultado que obtengo al ejecutar en un listado completo de la base de datos, la paginación funciona bien, pero no consigo que funcione la sintaxis para selección de registros en la base de datos.
Por cierto hay alguna manera de hacer esto sin activar register globals on en el php.ini?
Ahí va todo el script:



Código PHP:
<?


    mysql_connect
("bibliotecaria","icmun","maldecap");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>ejemplo de paginaci&oacute;n de resultados</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Pragma" content="no-cache" />
<style type="text/css">
<!--
a.p:link {
    color: #0066FF;
    text-decoration: none;
}
a.p:visited {
    color: #0066FF;
    text-decoration: none;
}
a.p:active {
    color: #0066FF;
    text-decoration: none;
}
a.p:hover {
    color: #0066FF;
    text-decoration: underline;
}
a.ord:link {
    color: #000000;
    text-decoration: none;
}
a.ord:visited {
    color: #000000;
    text-decoration: none;
}
a.ord:active {
    color: #000000;
    text-decoration: none;
}
a.ord:hover {
    color: #000000;
    text-decoration: underline;
}
-->
</style>
</head>
<body bgcolor="#FFFFFF">
<script language="JavaScript">
function muestra(queCosa)
{
    alert(queCosa);
}
</script>
<div align="center"><strong><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Paginaci&oacute;n 
  de Resultados de una consulta SQL (sobre MySQL)<br><br><p><a href="http://bibliotecaria">bibliotecaria</a></p> </font></strong> </div>
<hr noshade style="color:CC6666;height:1px">
<br>
<?
        
//inicializo el criterio y recibo cualquier cadena que se desee buscar
        
$criterio "";
        if (
$_GET["criterio"]!=""){
    
$txt_criterio $_GET["criterio"];
    
$criterio "WHERE 1 AND `soporte` like 'g"  $txt_criterio "g' AND `auttit` like '%" $txt_criterio "%' AND `pub` like '%" $txt_criterio "%'"
}


    
$sql="SELECT * FROM lampedusa.novetats" .$criterio;
        echo 
$sql;

    
$res=mysql_query($sql);
    
$numeroRegistros=mysql_num_rows($res);
    if(
$numeroRegistros<=0)
    {
        echo 
"<div align='center'>";
        echo 
"<font face='verdana' size='-2'>No se encontraron resultados</font>";
        echo 
"</div>";
    }else{
        
//////////elementos para el orden
        
if(!isset($orden))
        {
            
$orden="soporte";
        }
        
//////////fin elementos de orden

        //////////calculo de elementos necesarios para paginacion
        //tamaño de la pagina
        
$tamPag=12;

        
//pagina actual si no esta definida y limites
        
if(!isset($pagina))
        {
               
$pagina=1;
               
$inicio=1;
               
$final=$tamPag;
        }
        
//calculo del limite inferior
        
$limitInf=($pagina-1)*$tamPag;

        
//calculo del numero de paginas
        
$numPags=ceil($numeroRegistros/$tamPag);
        if(!isset(
$pagina))
        {
               
$pagina=1;
               
$inicio=1;
               
$final=$tamPag;
        }else{
            
$seccionActual=intval(($pagina-1)/$tamPag);
            
$inicio=($seccionActual*$tamPag)+1;

            if(
$pagina<$numPags)
            {
               
$final=$inicio+$tamPag-1;
            }else{
                
$final=$numPags;
            }
                
                if (
$final>$numPags){
                     
$final=$numPags;
            }
        }

        
//////////fin de dicho calculo

        //////////creacion de la consulta con limites
        
$sql="SELECT * FROM lampedusa.novetats ".$criterio." ORDER BY ".$orden.",soporte ASC LIMIT ".$limitInf.",".$tamPag;
        
$res=mysql_query($sql);

        
//////////fin consulta con limites
        
echo "<div align='center'>";
        echo 
"<font face='verdana' size='-2'>encontrados ".$numeroRegistros." resultados<br>";
        echo 
"ordenados por <b>".$orden."</b>";
                if(isset(
$txt_criterio)){
        echo 
"<br>Valor filtro: <b>".$txt_criterio."</b>";
                }
        echo 
"</font></div>";
        echo 
"<table align='center' width='80%' border='0' cellspacing='1' cellpadding='0'>";
        echo 
"<tr><td colspan='3'><hr noshade></td></tr>";
        echo 
"<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=soporte&criterio=".$txt_criterio."'>Soporte</a></th>";
        echo 
"<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=auttit&criterio=".$txt_criterio."'>Autor Título</a></th>";
        echo 
"<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=pub&criterio=".$txt_criterio."'>Publicación</a></th>";
        while(
$registro=mysql_fetch_array($res))
        {
?>
<!-- tabla de resultados -->
  <tr bgcolor="#CC6666" onMouseOver="this.style.backgroundColor='#FF9900';this.style.cursor='hand';" onMouseOut="this.style.backgroundColor='#CC6666'"o"];">
    <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["soporte"]; ?></b></font></td>
    <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["auttit"]; ?></b></font></td>
    <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["pub"]; ?></b></font></td>
  </tr>
<!-- fin tabla resultados -->
<?
        
}//fin while
        
echo "</table>";
    }
//fin if
    //////////a partir de aqui viene la paginacion
?>
    <br>
    <table border="0" cellspacing="0" cellpadding="0" align="center">
    <tr><td align="center" valign="top">
<?
    
if($pagina>1)
    {
        echo 
"<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."&orden=".$orden."&criterio=".$txt_criterio."'>";
        echo 
"<font face='verdana' size='-2'>anterior</font>";
        echo 
"</a>&nbsp;";
    }

    for(
$i=$inicio;$i<=$final;$i++)
    {
        if(
$i==$pagina)
        {
            echo 
"<font face='verdana' size='-2'><b>".$i."</b>&nbsp;</font>";
        }else{
            echo 
"<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&orden=".$orden."&criterio=".$txt_criterio."'>";
            echo 
"<font face='verdana' size='-2'>".$i."</font></a>&nbsp;";
        }
    }
    if(
$pagina<$numPags)
    {
        echo 
"&nbsp;<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&orden=".$orden."&criterio=".$txt_criterio."'>";
        echo 
"<font face='verdana' size='-2'>siguiente</font></a>";
    }
    
//////////fin de la paginacion
?>
    
<?
    mysql_close
();
?>
  #10 (permalink)  
Antiguo 06/11/2003, 09:57
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
¿Y como llegas a esa pagina? ¿Con un formulario o con un link? Si es un link, debe ser algo asi:

href="paginacion.php?criterio=palabra"

Siendo 'palabra' el texto a buscar. El parametro debe llamarse 'criterio' por narices.

Y si es un formulario, debe ser algo asi:

<form name="busqueda" method="GET" action="paginacion.php">
Palabra: <input type="text" name="criterio">

Lo importante de este formulario es que el method sea GET y que el campo se llame 'criterio' por narices.

Si llegas de otra forma, no funciona.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #11 (permalink)  
Antiguo 06/11/2003, 14:31
 
Fecha de Ingreso: octubre-2003
Mensajes: 10
Antigüedad: 20 años, 6 meses
Puntos: 0
En principio la página no esta montada en ningún proyecto de web. Pretendo insertarla en una web existente y el metodo de acceso será mediante link.
Estoy buscando un script que me permita interrogar una base de datos con una sintaxis de busqueda preestablecida y que me de un resultado paginado por el que se pueda navegar.
He leido en las instrucciones del php.ini que la opcion de poner register_globals = On no es la mejor elección
  #12 (permalink)  
Antiguo 06/11/2003, 14:41
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Quien dice link dice poner el valor del href en la barra de direcciones del navegador.

Lo que te quiero decir con esto es que nos digas como pruebas este script, ya que a no ser que reciba por GET el parametro llamado 'criterio', solo va a sacar todos los datos, que es lo que te hace ahora.

Si pones solo en la barra

http://localhost/paginacion.php

te va a dar como resultado todos los registros de la tabla.

Pero si pones

http://localhost/paginacion.php?criterio=pepe

entonces es cuando te tenia que hacer el WHERE.

Si quieres hacer la consulta con WHERE aunque no reciba 'criterio', debes quitar parte del codigo que crea el WHERE de dentro del if (isset($_GET['criterio']))

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #13 (permalink)  
Antiguo 06/11/2003, 18:41
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Y yo estoy convencido de que ya no habrá error... Con lo que pone josemi no habrá forma de que no entre al if... y otra cosa Jorka: Te repito que no va a funcionar si no pones un espacio antes del WHERE. Si no lo pones obtendrás esto:

SELECT * FROM lampedusa.novetatsWHERE 1 AND `soport... que no es una consulta válida

O sea que el espacio va entre las comillas y la W. Así:
" WHERE.... Y no
"WHERE...

Saludos
  #14 (permalink)  
Antiguo 07/11/2003, 06:07
 
Fecha de Ingreso: octubre-2003
Mensajes: 10
Antigüedad: 20 años, 6 meses
Puntos: 0
Gracias por tu corrección jpinedo ya he corregido el error en los espacios.

Josemi cuando ejecuto
http://localhost/busqueda.php
Obtengo un listado completo de la bases de datos con el menú de navegación operativo.
Si pongo
http://localhost/busqueda.php?criterio=g
Me da
SELECT * FROM lampedusa.novetats WHERE 1 AND `soporte` like '%g%gg' AND `auttit` like '%g%' AND `pub` like '%g%'
  #15 (permalink)  
Antiguo 07/11/2003, 06:18
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Bien, entonces funciona bien. Supongo que no te mostrara resultados, pero eso es por la condicion que le has puesto. Segun le has puesto, solo devolvera los registros que A LA VEZ tengan soporte, auttit y pub con un valor que contenga una 'g' (si quitamos las g's que has puesto de mas para soporte). Si eso no es lo que quieres, debes cambiar la condicion del WHERE.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #16 (permalink)  
Antiguo 07/11/2003, 06:28
 
Fecha de Ingreso: octubre-2003
Mensajes: 10
Antigüedad: 20 años, 6 meses
Puntos: 0
He modificado el where para dejarlo así:
Código PHP:
 //inicializo el criterio y recibo cualquier cadena que se desee buscar
        
$criterio "";
        if (
$_GET["criterio"]!=""){
    
$txt_criterio $_GET["criterio"];
    
$criterio =" WHERE 1 AND `soporte` like '"  $txt_criterio "'"
Ejecuto http://localhost/busqueda.php?criterio=g y obtengo el resultado deseado, pero resulta decepcionante que no se puedan hacer sintaxis más complejas.
  #17 (permalink)  
Antiguo 07/11/2003, 06:39
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,
¿A que te refieres con ?
Cita:
, pero resulta decepcionante que no se puedan hacer sintaxis más complejas.
Se pueden hacer todas las sintaxis complejas que puedas imaginarte en SQL. Solo tienes que saber plantearlas, y saber plasmarlas en SQL. Por ejemplo, si lo que quieres es sacar los registros que tengan el termino en cualquiera de los 3 campos, seria algo asi:
Código PHP:
$criterio =" WHERE `soporte` like '"  $txt_criterio "' OR `auttit` like '"  $txt_criterio "' OR `pub` like '"  $txt_criterio "'"
asi te mostrara los registros que tengan el termino exacto en soporte o en auttit o en pub, o en cualquier combinacion de los 3. Es decir, que por lo menos uno de los 3 campos sea el termino exacto.

Si quieres que sea contener en lugar de ser, usas los comodines %.

Y esto con solo un criterio. Si añades parametros a la URL, puedes ir creando el WHERE con esos parametros, combinando AND y OR.

Y luego tambien puedes añadir condiciones fijas que no dependan de los parametros, como 'y que no sean mas viejos que un año'.

Pero esto ya es jugar con los parametros y la SQL que necesites.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #18 (permalink)  
Antiguo 07/11/2003, 07:17
 
Fecha de Ingreso: octubre-2003
Mensajes: 10
Antigüedad: 20 años, 6 meses
Puntos: 0
Me refiero a buscar diferentes terminos en más de un campo como p.ejem.:

SELECT *
FROM `novetats`
WHERE 1 AND `soporte` = 'a' AND `mat1`
LIKE 'geografia' AND `mat2`
LIKE 'españa'

En tu anterior post me indicas:

Cita:
Si añades parametros a la URL, puedes ir creando el WHERE con esos parametros, combinando AND y OR.
Donde puedo puedo mirar algunos ejemplos para combinar parametros en URL?

Grüße
  #19 (permalink)  
Antiguo 07/11/2003, 07:44
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Si puedes hacer ese WHERE con AND, pero debes comprender que significa. Significa qu epara que un registro se muestre, deben tener esos 3 campos esos 3 valores exactos.

Y por lo que veo, quieres mirar cada cada campo con un termino distinto. Entonces debes tener mas de un parametro como 'criterio'. Por ejemplo, tienes un formulario con 3 cajas de texto: soporte, materia 1 y materia 2 (cada campo llamado criterio1, criterio2, criterio3). Y que son los 3 opcionales (se pueden rellenar o no). Entonces podrias poner:
Código PHP:
$where='';
if (isset(
$_GET['criterio1'])) {
  
$criterio1=$_GET['criterio1'];
  
$where=$where."`soporte` LIKE '".$criterio1."' AND ";
}
if (isset(
$_GET['criterio2'])) {
  
$criterio2=$_GET['criterio2'];
  
$where=$where."`mat1` LIKE '".$criterio2."' AND ";
}
if (isset(
$_GET['criterio3'])) {
  
$criterio3=$_GET['criterio3'];
  
$where=$where."`soporte` LIKE '".$criterio3."' AND ";
}

if (
''!=$where) {
  
$where=' WHERE '.$where;
  
$where=substr($where,0,-4); // para quitar el ultimo AND
}

$sql="SELECT * FROM lampedusa.novetats " .$where;
echo 
$sql
Luego en la creacion de links tendrias que hacer lo que hacias con txt_criterio, pero ahora para criterio1, criterio2 y criterio3.

Ahora se llamaria a la pagina con

busqueda.php?criterio1=a&criterio2=geografia&crite rio3=españa

Los nombres de los parametros los puedes cambiar para que sean mas significativos, pero debes cambiarlos en todos los lugares del script.

Como ves, segun añades mas parametros se complica un poco, pero es cuestion de tener cuidado con la logica.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #20 (permalink)  
Antiguo 07/11/2003, 09:11
 
Fecha de Ingreso: octubre-2003
Mensajes: 10
Antigüedad: 20 años, 6 meses
Puntos: 0
Gracias por la información haré pruebas este fin de semana a ver que tal va.

Un Saludo
Jorka
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 03:46.