Foros del Web » Programando para Internet » PHP »

Problema con Switch y con variables.

Estas en el tema de Problema con Switch y con variables. en el foro de PHP en Foros del Web. Bueno, a ver si me explico bien. Estoy creando un sistema de administración con usando múltiples switch, de esta manera: Código PHP: http : //localhost/administracion.php?seccion=Noticia&Opcion=Borrar&id=X  ...
  #1 (permalink)  
Antiguo 07/07/2003, 06:43
V_G
Invitado
 
Mensajes: n/a
Puntos:
Mensaje Problema con Switch y con variables.

Bueno, a ver si me explico bien. Estoy creando un sistema de administración con usando múltiples switch, de esta manera:
Código PHP:
http://localhost/administracion.php?seccion=Noticia&Opcion=Borrar&id=X 
El primer switch está dentro de la página administración.php, que incluye diferentes archivos según el valor de $opción , luego, el segundo switch tiene lugar dentro de la página a la que se llama, que según el valor de $opcion incluye una función u otra. Si $opcion= Nueva inserta NuevaNoticia(), etc...
Hasta aquí, todo va bien, el problema viene en que, en el caso de Borrar Noticia y Modificar, donde necesito una tercera variable ($id ), el script no me recoge la variable, pero la variable no está vacía, simplemente no la recoge. Es decir, si hago un echo en la parte fija (administracion.php), si me imprime el valor de id, pero si lo hago dentro de la función que es llamada a través del valor de $opción , la variable aparece como si estuviera vacía.
Mi pregunta es: ¿por qué no recibe la variable ?, ¿hay límite de switchs ?
Espero haberme explicado bien, ya que el problema es bastante raro.
Mcuhas gracias por vuestra ayuda!
  #2 (permalink)  
Antiguo 07/07/2003, 06:48
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

¿Tu problema es al intentar acceder a la variable dentro de una funcion? Usa el array superglobal $_GET. El problema que tienes es que dentro de una funcion no se puede acceder a ninguna variable del ambito global, como en este caso $id. Debes acostumbrarte a usar los arrays superglobales. Otra solucion es pasar el valor como parametro. O usar la sentencia global para declarar la variable dentro de la funcion, algo asi:
Código PHP:
function funcion() {
global 
$id;
echo 
$id;

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 07/07/2003, 08:13
V_G
Invitado
 
Mensajes: n/a
Puntos:
De acuerdo

Muchíiiiiisimas Gracias Josemi, me va de maravilla.

PD: y pensar que llevaba toda la semana intentando solucionar este problema
  #4 (permalink)  
Antiguo 07/07/2003, 08:16
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
De nada. Para eso estamos. Son 5000. Ya te enviare la factura
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 07/07/2003, 08:59
Avatar de Sexma  
Fecha de Ingreso: junio-2003
Ubicación: Valencia
Mensajes: 109
Antigüedad: 14 años, 6 meses
Puntos: 0
Otra solucion hubiera sido pasarle el valor de la variable a esa funcion.

Código PHP:
function mifuncion($id
__________________
CLUB ESPORTIU UNIVERSITAT DE VALENCIA

Visita la pagina de la UV-O



  #6 (permalink)  
Antiguo 07/07/2003, 09:19
V_G
Invitado
 
Mensajes: n/a
Puntos:
Sexma, ese método que tu dices lo probé y tampoco me sirvió, la solución fue convertir las variables en globales.
  #7 (permalink)  
Antiguo 07/07/2003, 10:42
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Otra forma de accesar a las variables globales es $GLOBALS["id"]

Solo para futura referencia
__________________
Manoloweb
  #8 (permalink)  
Antiguo 07/07/2003, 11:49
V_G
Invitado
 
Mensajes: n/a
Puntos:
Ok, muchas gracias ManoloWeb, lo tendré en cuenta
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 00:49.