Foros del Web » Programando para Internet » PHP »

problema con funcion switch

Estas en el tema de problema con funcion switch en el foro de PHP en Foros del Web. hola no puedo hacer funcionar el switch tengo la version de php 4.4.2 probe el mismo script en una version mas antigua la 4.3.11 y ...
  #1 (permalink)  
Antiguo 23/06/2006, 14:15
Avatar de defmost  
Fecha de Ingreso: agosto-2003
Ubicación: Concepcion
Mensajes: 214
Antigüedad: 20 años, 7 meses
Puntos: 1
problema con funcion switch

hola
no puedo hacer funcionar el switch
tengo la version de php 4.4.2

probe el mismo script en una version mas antigua la 4.3.11 y el switch funciona sin problemas

tiene alguna modificacion el switch en la version 4.4.2?


gracias
__________________
Drhost.cl
Hosting - Reseller - VPS - Dedicados en Chile
  #2 (permalink)  
Antiguo 23/06/2006, 14:26
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
En http://ar2.php.net/manual/es/control...res.switch.php no dicen nada de un cambio... ¿por qué no pegás el switch a ver que puede ser? Por otro lado... porqué decís que "no funciona"? devuelve algún error?
  #3 (permalink)  
Antiguo 23/06/2006, 14:47
Avatar de defmost  
Fecha de Ingreso: agosto-2003
Ubicación: Concepcion
Mensajes: 214
Antigüedad: 20 años, 7 meses
Puntos: 1
Cita:
Iniciado por Seppo
En http://ar2.php.net/manual/es/control...res.switch.php no dicen nada de un cambio... ¿por qué no pegás el switch a ver que puede ser? Por otro lado... porqué decís que "no funciona"? devuelve algún error?
el error es que los case no los toma
solo toma el default
hize una prueba con este script le di valores de id y me toma solo el default
Código PHP:
switch ($id){
case 
"1":
print (
"elegiste 1");
break;
case 
"2":
print (
"elegiste 2");
break;
case 
"3":
print (
"elegiste 3");
break;
default:
print (
"no elegiste nada");
break;

voy a probar que pasa con el script del manual y posteo los resultados
__________________
Drhost.cl
Hosting - Reseller - VPS - Dedicados en Chile
  #4 (permalink)  
Antiguo 23/06/2006, 14:53
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
comprobaset que $id tenga como valores 1, 2 o 3? Yo chequearía con un echo antes del switch para confirmarlo...
  #5 (permalink)  
Antiguo 23/06/2006, 14:56
Avatar de defmost  
Fecha de Ingreso: agosto-2003
Ubicación: Concepcion
Mensajes: 214
Antigüedad: 20 años, 7 meses
Puntos: 1
ya probe un script que salia en el manual de php
este
Código PHP:
<?php
 
switch ($i) {
     case 
0:
         print 
"i es igual a 0";
         break;
     case 
1:
         print 
"i es igual a 1";
         break;
     case 
2:
         print 
"i es igual a 2";
         break;
     default:
         print 
"i no es igual a 0, 1 o 2";
 }
?>
y tampoco funciona
aqui esta subido http://www.e-red.net/1.php
__________________
Drhost.cl
Hosting - Reseller - VPS - Dedicados en Chile
  #6 (permalink)  
Antiguo 23/06/2006, 14:57
Avatar de defmost  
Fecha de Ingreso: agosto-2003
Ubicación: Concepcion
Mensajes: 214
Antigüedad: 20 años, 7 meses
Puntos: 1
Cita:
Iniciado por Seppo
comprobaset que $id tenga como valores 1, 2 o 3? Yo chequearía con un echo antes del switch para confirmarlo...
y que deberia llevar ese echo que me dices?
__________________
Drhost.cl
Hosting - Reseller - VPS - Dedicados en Chile
  #7 (permalink)  
Antiguo 23/06/2006, 15:22
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
En todos los códigos que muestras núnca has mencionado cuál es el verdadero valor de la variable a comparar ($i), no daz argumenteos para poder ayudarte: ¿por qué no funciona?; ¿qué debería salir en lugar de lo que muestra?

Lo que dice Seppo es simplemente que imprimas esa variable y compruebes que realmente ha saltado/tomado determinado valor:
Código PHP:
$id2;
echo 
"El valor que \$id TIENE que ser $id<br>"// Confirmas y comparas con el resultado
switch($id) {
    case 
0:
        echo 
"id vale 0";
        break;
    case 
1:
        echo 
"id vale 1";
        break;
    case 
2:
        echo 
"id vale 2";
        break;
    default:
        echo 
"id vale 'default'";

Maneja los "echo" para que tú mismo busques por dónde puede estar el error...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #8 (permalink)  
Antiguo 23/06/2006, 15:41
Avatar de defmost  
Fecha de Ingreso: agosto-2003
Ubicación: Concepcion
Mensajes: 214
Antigüedad: 20 años, 7 meses
Puntos: 1
ya encontre el error
nose si sera de la configuracion de php
pero cuando ingreso variables por el url el script no toma dicha variable
por ejemplo script.php?id=1
como lo hago para ingresar variables por el url? o es un error del modulo de php en el server?


gracias
__________________
Drhost.cl
Hosting - Reseller - VPS - Dedicados en Chile
  #9 (permalink)  
Antiguo 23/06/2006, 23:27
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
... entonces "el problema" es con el paso de variables. Corresponde esta (y la siguiente) FAQ:
http://www.forosdelweb.com/showthrea...988#post238988

Valores por URL se reconjen con $_GET['var'] (donde "var" en tu caso sería "id").

www.php.net/variables.external



Por favor lee las políticas del foro.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #10 (permalink)  
Antiguo 24/06/2006, 00:03
Avatar de defmost  
Fecha de Ingreso: agosto-2003
Ubicación: Concepcion
Mensajes: 214
Antigüedad: 20 años, 7 meses
Puntos: 1
Cita:
Iniciado por jam1138
... entonces "el problema" es con el paso de variables. Corresponde esta (y la siguiente) FAQ:
http://www.forosdelweb.com/showthrea...988#post238988

Valores por URL se reconjen con $_GET['var'] (donde "var" en tu caso sería "id").

www.php.net/variables.external



Por favor lee las políticas del foro.
gracias jam1138
pero sigue sin funcionarme
probe con $_GET['id'], $_GET['$id'], $_REQUEST['id'], $_REQUEST['$id']
y nada funciona

ya me lei las politicas del foros
__________________
Drhost.cl
Hosting - Reseller - VPS - Dedicados en Chile

Última edición por defmost; 24/06/2006 a las 00:20
  #11 (permalink)  
Antiguo 24/06/2006, 01:01
Avatar de elquique  
Fecha de Ingreso: marzo-2004
Ubicación: Florida, Uruguay
Mensajes: 2.495
Antigüedad: 20 años, 1 mes
Puntos: 78
mmm si tu haces script.php?id=1

luego no puedes hacer directo

switch($id)

antes debes hacer asi:

$id = $_GET['id'];

y luego

switch($id)

ya que una cosa es un parametro en la linea de comando y otra una variable local :)
__________________
Blog Jorge Oyhenard | Tutoriales Photoshop
  #12 (permalink)  
Antiguo 24/06/2006, 01:18
Avatar de defmost  
Fecha de Ingreso: agosto-2003
Ubicación: Concepcion
Mensajes: 214
Antigüedad: 20 años, 7 meses
Puntos: 1
ahora si
me falto ponerle $id=$_GET['id'] esa igualdad
gracias a todos lo que me ayudaron
__________________
Drhost.cl
Hosting - Reseller - VPS - Dedicados en Chile
  #13 (permalink)  
Antiguo 24/06/2006, 01:28
Avatar de elquique  
Fecha de Ingreso: marzo-2004
Ubicación: Florida, Uruguay
Mensajes: 2.495
Antigüedad: 20 años, 1 mes
Puntos: 78
:) super , que bueno que lo lograste
__________________
Blog Jorge Oyhenard | Tutoriales Photoshop
  #14 (permalink)  
Antiguo 24/06/2006, 02:54
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
me falto ponerle $id=$_GET['id'] esa igualdad
No es igualdad, es una asignación... y lo correcto sería que la compararas directamente.

El "uso" de $_GET esta en las FAQ que te dije vieras... ¿crees no esta bien explicado?.

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 21:24.