Foros del Web » Programando para Internet » PHP »

Por ke no funca este switch

Estas en el tema de Por ke no funca este switch en el foro de PHP en Foros del Web. Tengo una función que debe hacer un switch entre 6 diferenctes opciones y no me funciona, siempre me deja la pag de respuesta en blanco, ...
  #1 (permalink)  
Antiguo 17/02/2003, 12:41
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.006
Antigüedad: 15 años, 11 meses
Puntos: 11
Por ke no funca este switch

Tengo una función que debe hacer un switch entre 6 diferenctes opciones y no me funciona, siempre me deja la pag de respuesta en blanco, pero cuando hago un if ahi si me funciiona, este es el switch que hago



function updatedbimagename($destination_file, $username, $cid, $description1){
@ $db=mysql_connect ("localhost", "er", "er");
if (!$db){
echo "Error: Could not connect to database. Please try again later.";
exit;
}
mysql_select_db ("al");
switch ($n){

case "1":
echo "este es el 1";
break;

case "2":
echo "este es el 2";

break;

}
}
Y no funciona, siempr me deja la pag en blanco!
-----------------------------------------------------------------
Este es el que si funcia con el if:

function updatedbimagename($destination_file, $username, $cid, $description1){
@ $db=mysql_connect ("localhost", "er", "er");
if (!$db){
echo "Error: Could not connect to database. Please try again later.";
exit;
}
mysql_select_db ("al");

if ($n =="1"){

//switch ($n){

//case "1":
echo "este es el 1";
}Else{echo "este es el 2";
}

Ven algo mal en el switch????

Última edición por rashid; 17/02/2003 a las 12:46
  #2 (permalink)  
Antiguo 17/02/2003, 14:15
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 15 años, 9 meses
Puntos: 54
Quítale las comillas. O sea:

case 0:
.................
case 1:
.................

Por lo que pone mi manual, lo del case ha de ser un número entero, y al ponerlo entre comillas es cadena de caracteres. Por eso quitar las comillas.
Espero que funcione.
Saludos
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #3 (permalink)  
Antiguo 17/02/2003, 14:22
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Yo lo que no veo es de donde sale $n. No la pasas como parametro a la funcion y tampoco la defines dentro de la funcion, con lo cual no esta definida al llegar al switch. Como no tiene valor, el switch no ejecuta ninguna de sus opciones. Asi que yo creo que el problema es que $n no existe. El if puede parecer que funciona, pero lo que hara sera sacar siempre el else.

Espero haber sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 17/02/2003, 14:28
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 15 años, 9 meses
Puntos: 54
Eso también, asegúrate de que $n tenga valor y además quita las comillas
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #5 (permalink)  
Antiguo 17/02/2003, 14:33
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.006
Antigüedad: 15 años, 11 meses
Puntos: 11
Esta cosa esta rarisima!!!!!!!!!............

La variable n la paso mediante un form.
Donde tengo este para llenar una caja de texto
<?
switch ($n){

case "1":
echo "<input type='text' name='n' value='$n'>";
break;

case "2":
echo "<input type='text' name='n' value='$n'>";
break;
}


?>
esta variable n veine de otra pag, y efectivametne llege pues la caja de texto es llenada.
pero el problema esta en la otra pag, al dar clik la variable va a la otra pag.
  #6 (permalink)  
Antiguo 17/02/2003, 14:43
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Puede que le este pasando la variable a la pagina con la funcion, pero tu no le estas pasando la variable a la funcion con el switch. Dentro de una funcion no puedes acceder directamente a las variables que estan definidas fuera de la funcion. En una FAQ de aqui del foro esta comentado. Revisalas.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 17/02/2003, 17:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Usa:

<?
echo $n.'<br>';
echo $_GET['n'].'<br>';
echo $_POST['n'].'<br>';

switch ($n){

Antes de usarlo en tu funcion $n .. si en la 2º o 3ª opción obtienes el valor de $n .. es recomendable q leas la FAQ que te hacia alusión Josemi:

http://www.forosdelweb.com/showthrea...989#post238989

(esa y la anterior .. sobre todo esa)

Un saludo,
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 22:40.