Foros del Web » Programando para Internet » PHP »

Problema con un retorno de valor

Estas en el tema de Problema con un retorno de valor en el foro de PHP en Foros del Web. Hola Amigos, He construido una función que resuelve la aprobación de materias correlativas en mi sistema de gestión académica. Lo hice con un switch y ...
  #1 (permalink)  
Antiguo 13/02/2006, 16:12
Avatar de Juanmax  
Fecha de Ingreso: diciembre-2005
Ubicación: Paraná, Entre Ríos , Argentina
Mensajes: 90
Antigüedad: 18 años, 4 meses
Puntos: 0
Problema con un retorno de valor

Hola Amigos,

He construido una función que resuelve la aprobación de materias correlativas en mi sistema de gestión académica. Lo hice con un switch y en cada 'case' agrego una sentencia 'return' para que me devuelva al script un 0 o un 1 dependiendo si puede o no el supuesto alumno inscribirse a esa materia.
La pregunta puntual es: ¿Como hago para capturar el valor devuelto por la función porque no se como tomarlo? Obviamente la funcion no me funciona...

Aca va parte de la funcion porque no me entra:

Código PHP:
<? //FUNCION PARA VERIFICAR LA APROBACIÓN DE MATERIAS CORRELATIVAS
  //**************************************************************
 //ANALISTA EN COMPUTACIÓN ADMINISTRATIVA

Function correl_analista($materia$cod_alumno)
include(
"conexiones.php");
switch (
$materia//todos los case estan ordenados por año segun planilla de correlatividades (Anexo 1)
    
{
    case 
"A01":
        return 
1;
        break;
    case 
"A27":
        return 
1;
        break;
    case 
"A02":
        
$query="SELECT reg_alumno_mesa.cod_alumno , reg_alumno_mesa.nota , reg_mesa.cod_mat ,
        reg_alumno_mesa.cod_mesa
        FROM reg_alumno_mesa INNER JOIN reg_mesa
        ON reg_alumno_mesa.cod_mesa = reg_mesa.cod_mesa
        WHERE reg_mesa.cod_mat = 'A01' AND reg_alumno_mesa.cod_alumno = '$cod_alumno'
        ORDER BY reg_alumno_mesa.cod_mesa DESC LIMIT 1"
;
        
conectar_admin('sga');
        
$k=mysql_query($query);
        
$data=mysql_fetch_array($k);
        if(
$data[nota] >=6)
            {
            return 
1;
            break;
            }else{
                return 
0;
                break;
                }
    case 
"A03":
        
$query="SELECT reg_alumno_mesa.cod_alumno , reg_alumno_mesa.nota , reg_mesa.cod_mat ,
        reg_alumno_mesa.cod_mesa
        FROM reg_alumno_mesa INNER JOIN reg_mesa
        ON reg_alumno_mesa.cod_mesa = reg_mesa.cod_mesa
        WHERE reg_mesa.cod_mat = 'A01' AND reg_alumno_mesa.cod_alumno = '$cod_alumno'
        ORDER BY reg_alumno_mesa.cod_mesa DESC LIMIT 1"
;
        
conectar_admin('sga');
        
$k=mysql_query($query);
        
$data=mysql_fetch_array($k);
        if(
$data[nota] >=6)
            {
            return 
1;
            break;
            }else{
                return 
0;
                break;
                }
    case 
"A04":
        
$query="SELECT reg_alumno_mesa.cod_alumno , reg_alumno_mesa.nota , reg_mesa.cod_mat ,
        reg_alumno_mesa.cod_mesa
        FROM reg_alumno_mesa INNER JOIN reg_mesa
        ON reg_alumno_mesa.cod_mesa = reg_mesa.cod_mesa
        WHERE reg_mesa.cod_mat = 'A27' AND reg_alumno_mesa.cod_alumno = '$cod_alumno'
        ORDER BY reg_alumno_mesa.cod_mesa DESC LIMIT 1"
;
        
conectar_admin('sga');
        
$k=mysql_query($query);
        
$data=mysql_fetch_array($k);
        if(
$data[nota] >=6)
            {
            return 
1
            
break;
            }else{
                return 
0;
                break;
                }
    case 
"A07":
        
$query="SELECT reg_alumno_mesa.cod_alumno , reg_alumno_mesa.nota , reg_mesa.cod_mat ,
        reg_alumno_mesa.cod_mesa
        FROM reg_alumno_mesa INNER JOIN reg_mesa
        ON reg_alumno_mesa.cod_mesa = reg_mesa.cod_mesa
        WHERE reg_mesa.cod_mat = 'A01' AND reg_alumno_mesa.cod_alumno = '$cod_alumno'
        ORDER BY reg_alumno_mesa.cod_mesa DESC LIMIT 1"
;
        
conectar_admin('sga');
        
$k=mysql_query($query);
        
$data=mysql_fetch_array($k);
        if(
$data[nota] >=6)
            {
            return 
1;
            break;
            }else{
                return 
0;
                break;
                }
    case 
"A08":
        
$querya="SELECT reg_alumno_mesa.cod_alumno , reg_alumno_mesa.nota , reg_mesa.cod_mat ,
        reg_alumno_mesa.cod_mesa
        FROM reg_alumno_mesa INNER JOIN reg_mesa
        ON reg_alumno_mesa.cod_mesa = reg_mesa.cod_mesa
        WHERE reg_mesa.cod_mat = 'A02' AND reg_alumno_mesa.cod_alumno = '$cod_alumno'
        ORDER BY reg_alumno_mesa.cod_mesa DESC LIMIT 1"
;
        
$queryb="SELECT reg_alumno_mesa.cod_alumno , reg_alumno_mesa.nota , reg_mesa.cod_mat ,
        reg_alumno_mesa.cod_mesa
        FROM reg_alumno_mesa INNER JOIN reg_mesa
        ON reg_alumno_mesa.cod_mesa = reg_mesa.cod_mesa
        WHERE reg_mesa.cod_mat = 'A03' AND reg_alumno_mesa.cod_alumno = '$cod_alumno'
        ORDER BY reg_alumno_mesa.cod_mesa DESC LIMIT 1"
;
        
conectar_admin('sga');
        
$a=mysql_query($querya);
        
$dataa=mysql_fetch_array($a);
        
$b=mysql_query($queryb);
        
$datab=mysql_fetch_array($b);
        if(
$dataa[nota] >=and $datab[nota] >=6)
            {
            return 
1;
            break;
            }else{
                return 
0;
                break;
                }
    case 
"A10":
        return 
1;
        break;
    case 
"A05":
        return 
1;
        break;
    case 
"A06":
        return 
1;
        break;
//FIN MATERIAS PRIMER AÑO
    
case "A11":
        
$query="SELECT reg_alumno_mesa.cod_alumno , reg_alumno_mesa.nota , reg_mesa.cod_mat ,
        reg_alumno_mesa.cod_mesa
        FROM reg_alumno_mesa INNER JOIN reg_mesa
        ON reg_alumno_mesa.cod_mesa = reg_mesa.cod_mesa
        WHERE reg_mesa.cod_mat = 'A02' AND reg_alumno_mesa.cod_alumno = '$cod_alumno'
        ORDER BY reg_alumno_mesa.cod_mesa DESC LIMIT 1"
;
        
conectar_admin('sga');
        
$k=mysql_query($query);
        
$data=mysql_fetch_array($k);
        if(
$data[nota] >=6)
            {
            return 
1;
            break;
            }else{
                return 
0;
                break;
                }
    case 
"A12":
        
$query="SELECT reg_alumno_mesa.cod_alumno , reg_alumno_mesa.nota , reg_mesa.cod_mat ,
        reg_alumno_mesa.cod_mesa
        FROM reg_alumno_mesa INNER JOIN reg_mesa
        ON reg_alumno_mesa.cod_mesa = reg_mesa.cod_mesa
        WHERE reg_mesa.cod_mat = 'A08' AND reg_alumno_mesa.cod_alumno = '$cod_alumno'
        ORDER BY reg_alumno_mesa.cod_mesa DESC LIMIT 1"
;
        
conectar_admin('sga');
        
$k=mysql_query($query);
        
$data=mysql_fetch_array($k);
        if(
$data[nota] >=6)
            {
            return 
1;
            break;
            }else{
                return 
0;
                break;
                }
    case 
"A14":
        
$query="SELECT reg_alumno_mesa.cod_alumno , reg_alumno_mesa.nota , reg_mesa.cod_mat ,
        reg_alumno_mesa.cod_mesa
        FROM reg_alumno_mesa INNER JOIN reg_mesa
        ON reg_alumno_mesa.cod_mesa = reg_mesa.cod_mesa
        WHERE reg_mesa.cod_mat = 'A10' AND reg_alumno_mesa.cod_alumno = '$cod_alumno'
        ORDER BY reg_alumno_mesa.cod_mesa DESC LIMIT 1"
;
        
conectar_admin('sga');
        
$k=mysql_query($query);
        
$data=mysql_fetch_array($k);
        if(
$data[nota] >=6)
            {
            return 
1;
            break;
            }else{
                return 
0;
                break;
                }
    case 
"A13":
        
$query="SELECT reg_alumno_mesa.cod_alumno , reg_alumno_mesa.nota , reg_mesa.cod_mat ,
        reg_alumno_mesa.cod_mesa
        FROM reg_alumno_mesa INNER JOIN reg_mesa
        ON reg_alumno_mesa.cod_mesa = reg_mesa.cod_mesa
        WHERE reg_mesa.cod_mat = 'A05' AND reg_alumno_mesa.cod_alumno = '$cod_alumno'
        ORDER BY reg_alumno_mesa.cod_mesa DESC LIMIT 1"
;
        
conectar_admin('sga');
        
$k=mysql_query($query);
        
$data=mysql_fetch_array($k);
        if(
$data[nota] >=6)
            {
            return 
1;
            break;
            }else{
                return 
0;
                break;
                }
    case 
"A09":
        
$query="SELECT reg_alumno_mesa.cod_alumno , reg_alumno_mesa.nota , reg_mesa.cod_mat ,
        reg_alumno_mesa.cod_mesa
        FROM reg_alumno_mesa INNER JOIN reg_mesa
        ON reg_alumno_mesa.cod_mesa = reg_mesa.cod_mesa
        WHERE reg_mesa.cod_mat = 'A04' AND reg_alumno_mesa.cod_alumno = '$cod_alumno'
        ORDER BY reg_alumno_mesa.cod_mesa DESC LIMIT 1"
;
        
conectar_admin('sga');
        
$k=mysql_query($query);
        
$data=mysql_fetch_array($k);
        if(
$data[nota] >=6)
            {
            return 
1;
            break;
            }else{
                return 
0;
                break;
                }
    case 
"A15":
        
$querya="SELECT reg_alumno_mesa.cod_alumno , reg_alumno_mesa.nota , reg_mesa.cod_mat ,
        reg_alumno_mesa.cod_mesa
        FROM reg_alumno_mesa INNER JOIN reg_mesa
        ON reg_alumno_mesa.cod_mesa = reg_mesa.cod_mesa
        WHERE reg_mesa.cod_mat = 'A13' AND reg_alumno_mesa.cod_alumno = '$cod_alumno'
        ORDER BY reg_alumno_mesa.cod_mesa DESC LIMIT 1"
;
        
$queryb="SELECT reg_alumno_mesa.cod_alumno , reg_alumno_mesa.nota , reg_mesa.cod_mat ,
        reg_alumno_mesa.cod_mesa
        FROM reg_alumno_mesa INNER JOIN reg_mesa
        ON reg_alumno_mesa.cod_mesa = reg_mesa.cod_mesa
        WHERE reg_mesa.cod_mat = 'A04' AND reg_alumno_mesa.cod_alumno = '$cod_alumno'
        ORDER BY reg_alumno_mesa.cod_mesa DESC LIMIT 1"
;
        
conectar_admin('sga');
        
$a=mysql_query($querya);
        
$dataa=mysql_fetch_array($a);
        
$b=mysql_query($queryb);
        
$datab=mysql_fetch_array($b);
        if(
$dataa[nota] >=and $datab[nota] >=6)
            {
            return 
1;
            break;
            }else{
                return 
0;
                break;
                }
    
    }
?>
__________________
juanmax - GUERRERO Lab
  #2 (permalink)  
Antiguo 13/02/2006, 16:32
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 18 años, 8 meses
Puntos: 2
No se si comprendo bien lo que necesitas. Si tu problema es que no sabes capturar el valor de retorno de tu función, en este caso sería:

Código PHP:
<?php
$resultado
=correl_analista("A01""00000");
if(
$resultado==1) echo "Puedes inscribirte";
else echo 
"No puedes inscribirte";
?>
o directamente:

Código PHP:
<?php
if(correl_analista("A01""00000")) echo "Puedes inscribirte";
else echo 
"No puedes inscribirte";
?>
Saludos.
__________________
R4DS en español | R4DS en inglés
  #3 (permalink)  
Antiguo 13/02/2006, 16:38
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Lo capturas así:

$aqui_se_captura = nombre_de_tu_funcion(parametro1,parametro2);
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #4 (permalink)  
Antiguo 13/02/2006, 16:38
Avatar de Juanmax  
Fecha de Ingreso: diciembre-2005
Ubicación: Paraná, Entre Ríos , Argentina
Mensajes: 90
Antigüedad: 18 años, 4 meses
Puntos: 0
No Se PorquÉ Se Corta El Script Con Solo Poner La Clausula Enclude .. Algo En La Funcion Debe Estar Mal.

Gracias Zaqpz !!
__________________
juanmax - GUERRERO Lab
  #5 (permalink)  
Antiguo 13/02/2006, 17:25
Avatar de Juanmax  
Fecha de Ingreso: diciembre-2005
Ubicación: Paraná, Entre Ríos , Argentina
Mensajes: 90
Antigüedad: 18 años, 4 meses
Puntos: 0
Un Punto Y Coma ...



Bueno.. eso era... no funcionaba por un punto y coma.. perdon por las molestiasss ocasionadassss...
gracias a todos...
__________________
juanmax - GUERRERO Lab
  #6 (permalink)  
Antiguo 13/02/2006, 17:34
Avatar de Juanmax  
Fecha de Ingreso: diciembre-2005
Ubicación: Paraná, Entre Ríos , Argentina
Mensajes: 90
Antigüedad: 18 años, 4 meses
Puntos: 0
Exclamación Bueno... ahora igual se corta el script, ahora si esta mal la funcion

Alguien me pudiera dar alguna idea de porqué está mal la funcion..
__________________
juanmax - GUERRERO Lab
  #7 (permalink)  
Antiguo 14/02/2006, 07:29
Avatar de Juanmax  
Fecha de Ingreso: diciembre-2005
Ubicación: Paraná, Entre Ríos , Argentina
Mensajes: 90
Antigüedad: 18 años, 4 meses
Puntos: 0
Bien. Hola de nuevo:
Esta solucionado el problema, tenía un include en la funcion que ya estaba en el script lo que causaba el error. Lo quiete del script y solo lo deje en la funcion.
Gracias a todos.
__________________
juanmax - GUERRERO Lab
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 23:12.