Foros del Web » Programando para Internet » PHP »

Parametros logicos y variable URL

Estas en el tema de Parametros logicos y variable URL en el foro de PHP en Foros del Web. Hola a todos: tengo un problema para el que necesito ayuda. Os cuento: en una pagina hago un link en la que paso una variable ...
  #1 (permalink)  
Antiguo 09/04/2004, 04:36
 
Fecha de Ingreso: febrero-2004
Ubicación: Asturias
Mensajes: 171
Antigüedad: 13 años, 10 meses
Puntos: 0
Parametros logicos y variable URL

Hola a todos: tengo un problema para el que necesito ayuda. Os cuento:

en una pagina hago un link en la que paso una variable por URL:
../colabora.php?colab=GEAS
mientras que en otros links colab toma otros valores.

colabora.php tiene una consulta a una tabla mysql, en la que hay 3 columnas que pueden tener GEAS. Lo que quiero es que si en una de ellas aparece GEAS escriba:

GEAS (la variable que se pasa por URL) tiene X(numero de filas en las que aparece) fotos.

Los problemas que tengo:
1.- ¿Como puedo escribir esa variable que se pasa por URL, ya sea GEAS u otra?
2.- ¿Como busco el numero de filas en las que aparece? Usando :
select Nombre from Tabla where foto1 OR foto2 OR foto3 = '%s'
no aparece nada, poruqe creo que OR solamente sirve para comparar 2 cosas, no 3.

Gracias a todos
  #2 (permalink)  
Antiguo 09/04/2004, 05:50
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

1-
Código PHP:
echo $_GET['colab'
2- OR sirve para comparar x condiciones, con x tendiendo a infinito. Lo que pasa es que son condiciones lo que compara, es decir, en tu caso:

foto1='GEAS' OR foto2='GEAS' OR foto3='GEAS'

Ademas, el igual es para el caso en que sean exactamente igual, es decir, si foto1 es 'geas.jpg', entonces foto1='GEAS' no es cierto.

Revisa www.mysql.com

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 09/04/2004, 15:45
 
Fecha de Ingreso: febrero-2004
Ubicación: Asturias
Mensajes: 171
Antigüedad: 13 años, 10 meses
Puntos: 0
gracias por tu respuesta.
Respecto a los parametros logicos esto sigue sin funcionar. no entiendo que pasa.

Escribiendo :

$_pagi_sql = sprintf("SELECT Especie, Autor, Nombrecomún, Autorfoto1, Autorfoto2, Autorfoto3 FROM astur WHERE
Autorfoto1 = '%s'
ORDER BY Especie ASC", $colname_Recordset1);

se seleccionan 50 filas.

si escribo:

$_pagi_sql = sprintf("SELECT Especie, Autor, Nombrecomún, Autorfoto1, Autorfoto2, Autorfoto3 FROM astur WHERE
Autorfoto1 OR Autorfoto2= '%s'
ORDER BY Especie ASC", $colname_Recordset1);

aparecen 16 filas, cuando deberian aparecer mas

Si escribo:
$_pagi_sql = sprintf("SELECT Especie, Autor, Nombrecomún, Autorfoto1, Autorfoto2, Autorfoto3 FROM astur WHERE
Autorfoto1 OR Autorfoto2 OR Autorfoto3 = '%s'
ORDER BY Especie ASC", $colname_Recordset1);

aparece solamente una, cuando deberian aparecer bastantes mas.

¿que hago mal?
  #4 (permalink)  
Antiguo 10/04/2004, 09:28
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Porque tienes que poner el = en las 3 condiciones:

WHERE
Autorfoto1= '%s' OR Autorfoto2= '%s' OR Autorfoto3 = '%s'

porque es

condicion1 OR condicion2 OR condicion3

son condiciones independientes.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 10/04/2004, 14:30
 
Fecha de Ingreso: febrero-2004
Ubicación: Asturias
Mensajes: 171
Antigüedad: 13 años, 10 meses
Puntos: 0
Hola. Lamento ser pesado, pero eso ya lo habria probado:

$_pagi_sql = sprintf("SELECT Especie, Autor, Nombrecomún, Autorfoto1, Autorfoto2, Autorfoto3 FROM astur WHERE
Autorfoto1 = '%s' OR Autorfoto2 = '%s' OR Autorfoto3 = '%s'
ORDER BY Especie ASC", $colname_Recordset1);

y me da el siguiente error:

Warning: sprintf(): Too few arguments in C:\sokkit\site\local\Consultas\colabor.php on line 8
Query was empty

y deberian salir 70 filas seleccionadas. Me tiene bastante mosca esto.
  #6 (permalink)  
Antiguo 10/04/2004, 14:51
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Bueno, es que eso no es un fallo de la sentencia, es fallo al usar sprintf() (www.php.net/sprintf). Si quieres repetir los valores de un parametro, debes usar:
Código PHP:
$_pagi_sql sprintf("SELECT Especie, Autor, Nombrecomún, Autorfoto1, Autorfoto2, Autorfoto3 FROM astur WHERE
Autorfoto1 = '%1\$s' OR Autorfoto2 = '%1\$s' OR Autorfoto3 = '%1\$s'
ORDER BY Especie ASC"
$colname_Recordset1); 
Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 06:45.