PHP - manejo de variables y funciones

 
Vista:
sin imagen de perfil
Val: 62
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

manejo de variables y funciones

Publicado por giuli (74 intervenciones) el 01/11/2016 13:10:45
Tengo un form donde introduzco curso division y trimestre del año(primero segundo y tercero). Debo obtener y traer por pantalla las calificaciones de cada alumno del curso con la calificacion de cada una de sus materias.

Hice lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<!DOCTYPE HTML>
<html>
<head>
	<meta http-equiv="content-type" content="text/html" />
    	<title>Sistema de Gestion de Alumnos</title>
    <link rel="stylesheet" href="../../Css/Formularios.css"/>
</head>
<body>
<?php
 
include_once '../../PHP/Conexion.php';
$conectar = conexionBD();
function obteneralumnos(){
    if (isset($_POST['cursos']) && isset($_POST['divisiones'])){
        global $conectar;
                            $idcurso =htmlentities($_POST['cursos']);
                            $iddivision =htmlentities($_POST['divisiones']);
                            $sqlalumnos="SELECT alumno.idalumno,alumno.idpersona,alumno.nombre,alumno.apellido FROM alumno";
                            $sqlalumnos.=" LEFT JOIN persona ON alumno.idpersona=persona.idpersona WHERE idcurso=".$idcurso." AND iddivision=".$iddivision.";";
                            $rsalumnos= select($conectar,$sqlalumnos);
                            }
                            return $rsalumnos;
                            };
function listadocalificaciones(){
 
 
                        foreach ($rsalumnos as $alumno){
                          $numtrimestre=htmlentities($_POST['trimestres']);
                          $sqlnotas="SELECT trimestres.nota,materia.descripcion FROM trimestres";
                          $sqlnotas.="LEFT JOIN materia ON materia.idmateria=trimestres.idmateria";
                          $sqlnotas.="WHERE numtrimestre=".$numtrimestre." AND idalumno=".$alumno['idalumno'].";";
                          $rsnotas=select($conectar,$sqlnotas);
                          return $rsnotas;
                            }
};
 
?>
    <form method="post" id="listado" name="listado">
  <section id="seccion">
      <?php $rsalumnos = obteneralumnos();
      foreach ($rsalumnos as $alumno){
            ?>
               <input type="label" value="<?php echo $alumno['nombre'];?>" />
           <?php } ?>
        </section>
 
 </form>
</body>
</html>

Pero no encuentra la variable $rsalumnos. Esta bien hacer un para de funciones que retornen dos vectores para luego recorrerlos?
Poner la variable conectar como global esat bien o de que otra manera me recomiendan hacerlo?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

manejo de variables y funciones

Publicado por xve (6935 intervenciones) el 01/11/2016 18:26:01
Hola Giuli, dentro de la función listadocalificaciones() no existe dicha variable!!! recuerda que dentro de las funciones, para utilizar las variables de fuera de la función tienes que pasarlas como parametro o utilizar
1
global $variable;

http://php.net/manual/en/language.variables.scope.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 62
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

manejo de variables y funciones

Publicado por giuli (74 intervenciones) el 01/11/2016 22:29:02
tenia ademas un error en la consulta y eso hacia que falle todo..
finalmente quedo asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<!DOCTYPE HTML>
<html>
<head>
	<meta http-equiv="content-type" content="text/html" />
    	<title>Sistema de Gestion de Alumnos</title>
    <link rel="stylesheet" href="../../Css/Formularios.css"/>
</head>
<body>
<?php
 
include_once '../../PHP/Conexion.php';
$conectar = conexionBD();
function obteneralumnos(){
    if (isset($_POST['cursos']) && isset($_POST['divisiones'])){
        global $conectar;
                            $idcurso =htmlentities($_POST['cursos']);
                            $iddivision =htmlentities($_POST['divisiones']);
                            $sqlalumnos="SELECT alumno.idalumno,alumno.idpersona,persona.nombre,persona.apellido FROM alumno";
                            $sqlalumnos.=" LEFT JOIN persona ON alumno.idpersona=persona.idpersona WHERE idcurso=".$idcurso." AND iddivision=".$iddivision.";";
                            $rsalumnos= select($conectar,$sqlalumnos);
                            }
                            return $rsalumnos;
                            };
function listadocalificaciones($idalu){
                    global $conectar;
 
                          $numtrimestre=htmlentities($_POST['trimestres']);
                          $sqlnotas="SELECT trimestres.nota,materia.descripcion FROM trimestres";
                          $sqlnotas.="LEFT JOIN materia ON materia.idmateria=trimestres.idmateria";
                          $sqlnotas.="WHERE nuntrimestre=".$numtrimestre." AND idalumno=".$idalu.";";
                          $rsnotas=select($conectar,$sqlnotas);
                          return $rsnotas;
 
};
 
?>
    <form method="post" id="listado" name="listado">
  <section id="seccion">
 
      <?php
 
      $rsalumnos =obteneralumnos();
      foreach ($rsalumnos as $alumno){listadocalificaciones($alumno['idalumno']);
            ?>
               <input type="label" value="<?php echo $alumno['nombre'];?>" />
           <?php } ?>
        </section>
 
 </form>
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar