Foros del Web » Programando para Internet » PHP »

Transacciones en un sistema php

Estas en el tema de Transacciones en un sistema php en el foro de PHP en Foros del Web. Buenas como les va, tengo una duda, y bueno todo se relaciona con respecto a lo siguiente: Estoy tratando de realizar un sistema de consulta ...
  #1 (permalink)  
Antiguo 18/11/2009, 16:10
 
Fecha de Ingreso: mayo-2009
Mensajes: 55
Antigüedad: 14 años, 11 meses
Puntos: 0
Transacciones en un sistema php

Buenas como les va, tengo una duda, y bueno todo se relaciona con respecto a lo siguiente:

Estoy tratando de realizar un sistema de consulta para notas, en los cuales tengo 3 tipos de usuario: admin, profesor y alumno, cada uno con distinto menu. Bueno hasta ahi normal, las consultas de practicas, cursos y examenes a lo que alumno se refiere ya lo tengo hecho

Ahora estoy haciendo una pagina para la administracion de profesores, he tenido muchas dudas respecto a esto, pero las he tratado de resolver de la forma mas sencilla (porque recien me inicio en PHP) y algunas me han salido, pero ahora creo que he llegado a un problema muy complejo el cual quiero tratar de resolver y para ello necesitaria la ayuda de alguien que realmente conozca o me pueda dar alguna recomendacion, es importante xfa!! bueno ahi voy:

Lo que quiero hacer en la pagina de profes es que el profe sepa que cursos tiene asignado (hecho) y que por cada curso, sepa cuantos alumnos hay ahi matriculados (hecho) y bueno como saben que los profes son los que corrijen (he aqui mi gran problema) requiero hacer el ingreso de notas, y para ello me plantee 2 formas por asi decirlo:

1.- Que se muestre el listado de alumno de un curso determinado y poner campos (text) donde pueda ingresar cada nota de los alumnos (uno por uno), bueno aqui yo me imagine una gran cantidad de variables que deberia asignar y realizar consultas con la BD para poder actualizar y/o insertar.

2.- Creo que simple o no se si se puede, sacar el listado de alumnos y que por cada uno de ellos, referenciando las variables pertinentes, ir ingresando la nota por cada uno de ellos.

No se cual me recomienden hacer, y lo mas importante, como poder hacerlo, tengo las ideas (pero como mencione antes, recien me inicio en PHP) y no soy tanto de programar que digamos, pero es una necesidad y es por ello que pido ayuda.

Gracias de antemano a aquellas personas que me puedan ayudar...

Saludos!!
  #2 (permalink)  
Antiguo 18/11/2009, 20:39
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Transacciones en un sistema php

O sea, en si ninguna de las 2 es complicadisima... Puede ser la 1) un poco mas larga que la 2) pero nada del otro mundo....
Lo que yo haria es un menu de opciones, con los nombres de los alumnos y los valores iguales a los nombres y al lado un textbox.
Luego, que el profe vaya eligiendo los nombres, y poniendo las notas en el text y de ahi 1 por 1 ir haciendo update de cada campo...

El codigo no seria complicado, necesitas una base de datos (que no se si la tendras) con las siguientes columnas:
tabla "alumnos":
nombre y apellido
curso
profesor
nota
(si queres le podes agregar horario, etc etc)

Bueno dsps la idea seria hacer un php con una consulta a esta tabla y que agregue dinamicamente los nombres de los alumnos, que seria algo asi:

listado_alumnos.php
Código PHP:
<?php
$base
="tu_base_de_datos";
$conectar=mysql_connect("localhost","root","");
$elegir=mysql_select_db($base,$conectar);

$sql="select nombre y apellido from alumnos where curso='$curso' and profesor='$profesor';";
/*las variables $curso las eligiria el profesor de su panel de control
   y $profesor seria el nombre del profesor*/

$consulta=mysql_query($sql,$conectar) or die("Error: ".mysql_error());
echo 
"<select name='nombres'><option selected>Seleccione</option>";
while(
$registro=mysql_fetch_row($consulta)){
for(
$i=0;$i<count($registro);$i++){
echo
"<option value='$registro[$i]'>$registro[$i]</option>";
}
}
echo 
"</select>";
Luego en otro php, donde ingresaria el profesor para poner las notas pones lo siguiente:

notas.php
Código PHP:
<html>
<head>
<title>Ingresar Notas</title>
</head>
<body>
<form action="ingresar_notas.php" method="post">
Seleccione un alumno:
<?php
include("listado_alumnos.php");
?>
<br />
Nota:
<input type="text" name="nota" />
<br />
<input type="submit" value="Enviar" />
</form>
</body>
</html>
Y por ultimo la accion de ese formulario seria:
ingresar_notas.php
Código PHP:
<?php
//levanto la variable del formulario
$nombreyapellido=$_POST['nombres'];
$nota=$_POST['nota'];
//conexion a la base
$base="tu_base_de_datos";
$conectar=mysql_connect("localhost","root","");
$elegir=mysql_select_db($base,$conectar);

$sql="update alumnos set nota='$nota' where nombre y apellido='$nombreyapellido';";
$consulta=mysql_query($sql,$conectar) or die("Error: ".mysql_error());
$filas=mysql_fecth_row($consulta);
if(
$filas==1){
header("location:notas.php");
//redirecciono a la pagina en donde se ingresan las notas para seguir...
}
?>
Bueno, espero que sirva!!!
  #3 (permalink)  
Antiguo 19/11/2009, 10:12
 
Fecha de Ingreso: mayo-2009
Mensajes: 55
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Transacciones en un sistema php

Pucha "jackson666" muy buen dato te pasaste, gracias por la referencia, veo que lo haces de manera muy sencilla, yo estuve consultando tambien y asu me fueron con unas complicaciones, pero mira si tengo una BD que diseñe, bueno hasta ahora me funciona bien, pero aqui las pongo para que mas o menos me entiendas; las tablas que manejo para estas consultas son:

persona (donde tengo todos los datos de los usuarios)
alumno (codAlum, id_persona)
profesores (codProf, id_persona)
detalle_alumno (cod_detalle, codAlum, codProf, id_curso, ciclo)
curso (id_curso, nomcurso, creditos)
notas (cod_detalle, pc01, pc02, pc03, pp, ep, ef, es, prom, susti, promfinal)

Bueno como te daras cuenta, hay atributos que se repiten en las diferentes tablas y es que las he relacionado, la cuestion ahora me va ser adaptar el codigo que me proporcionaste, bueno o a menos que me puedas dar alguna referencia, ya que no se me da mucho por programar, pero igual lo intentare, si por ahi recibo alguna ayuda se agradece!!!

Y gracias otra vez jackson666 por la ayuda, voy a intentar aplicarlo a lo que ya tengo

Saludos


PD: Wow creo q falto aclarar que no solo ingreso 1 nota, son 3PC, PP, 1EP, 1EF, 1 susti (si fuera necesario), y promedio final es decir:

PP = (pc01 + pc02 + pc03)/3
promedio final = (pp + ep + 2*ef)/4

notas por cada alumno... wow que dolor de cabeza es esto :/

Última edición por pedrolp; 19/11/2009 a las 11:03
  #4 (permalink)  
Antiguo 20/11/2009, 12:09
 
Fecha de Ingreso: mayo-2009
Mensajes: 55
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Transacciones en un sistema php

Buenas, pude resolver mi problema con las dichosas consultas e ingresos, todo va ok! a la hora de ingresar datos, pero ahora viene un pequeño detalle, x el paso de variables, bueno va masomenos de esta forma:

En principal.php
===========

Pagina de menu principal del profesor, ahi direcciono hacia notas.php en donde va comenzar la asignacion de notas por cada alumno, el detalle es que en esta pagina hago lo siguiente:

<?php
session_start();
require_once("../conexion/parametrosdb.php");
include('../conexion/conectdb.php');
echo "<center>Bienvenido Profesor<br>";
$id = $_SESSION["id_user"];
$user = $_SESSION["user"];
echo $id."<br>";
echo $user."<br>";

//Consulta para poder utilizar los datos del usuario, en este caso, del profesor:

$sql = "SELECT codProf FROM profesores WHERE id_persona = '$id'";
$rs = mysql_query($sql);
$data = mysql_fetch_row($rs);
$codprofesor = $data["0"];
?>

Como pueden ver, recojo los datos de un previo logueo de usuario con ellos tomo referencia para poder obtener el codigo de profesor, con el cual lo envio hacia la pagina de notas.php de la siguiente manera:

<tr>
<td align="center"><a href="notas.php?codigo=<?=$codprofesor?>">Ingresar Notas</a></td>
</tr>

Bueno es toda una tabla pero con esto creo que me entienden.

notas.php
=======

Lo que hace en esta pagina es ingresar mediante un formulario todos los campos necesarios para ingresar las notas, mas añandiendo un archivo de la siguiente forma:

<tr>
<td align="right">Seleccione un alumno:&nbsp;&nbsp;</td>
<td><?php include("ingresar.php"); ?></td>
</tr>

En la que ingresar.php hace lo siguiente:

Código PHP:
<?php
session_start
();
require_once(
"../conexion/parametrosdb.php");
include(
'../conexion/conectdb.php');
$codprofesor $_GET["codigo"];    //codigo del profesor que se envia desde la pagina principal.php

/* ####################### Consulta a la BD ################################ */

$sql "SELECT p.id_persona, p.nombres, p.apaterno, p.amaterno, a.codAlumno, da.cod_detalle, da.codProf,
        da.id_curso, c.nomcurso
        FROM persona p
        INNER JOIN alumno a ON p.id_persona=a.id_persona
        INNER JOIN detalle_alumno da ON a.codAlumno=da.codAlumno
        INNER JOIN curso c ON da.id_curso=c.id_curso
        WHERE codProf='$codprofesor'"
//verifica mediante el codigo del profesor

$rs mysql_query($sql);
$num mysql_num_rows($rs);

if(
$num 0){
    echo 
"<select name='alumnos'><option selected>Seleccione</option>";
    while(
$data=@mysql_fetch_array($rs)){        
        
$nombres $data["nombres"];
        
$ap $data["apaterno"];
        
$am $data["amaterno"];
        
$codAlumno $data["codAlumno"];
        
$codprof $data["codProf"];
        
$cod_detalle $data["cod_detalle"];
        
        
$alumno $nombres." ".$ap." ".$am;
        
        echo 
"<option value='$cod_detalle'>$alumno</option>";        
    }
    echo 
"</select>";
}
?>
Bueno ahi hace la consulta de los alumnos para elegirlos y sacar la nota de dicho alumno en la cual pasa la variable '$cod_detalle' como parametro de identificacion para la tabla de notas de la BD, se dan cuenta tambien que la consulta hecha es identificando el codigo del profesor ... WHERE codProf='$codprofesor'
Que se trae desde principal.php

finalmente en:

ingresar_notas.php
==============

Se le envian las variables del formulario...

Código PHP:
<?php
session_start
();
require_once(
"../conexion/parametrosdb.php");
include(
'../conexion/conectdb.php');

//levanto la variable del formulario
$cod_detalle $_POST['alumnos'];
$pc01 $_POST['pc01'];
$pc02 $_POST['pc02'];
$pc03 $_POST['pc03'];
//$pp = $_POST['pp'];
$parcial $_POST['parcial'];
$final $_POST['final'];
$susti $_POST['susti'];
$promfinal $_POST['promfinal'];

$pp = ($pc01+$pc02+$pc03)/3;

$sql "UPDATE notas SET pc01='$pc01', pc02='$pc02', pc03='$pc03', prompract='$pp', parcial='$parcial',
        final='$final', promedio='$pp', susti='$susti', promfinal='$promfinal' 
        WHERE cod_detalle='$cod_detalle';"
;

$rs mysql_query($sql) or die("Error: ".mysql_error());

?>

<script>
 alert("Se ingresaron correctamente las notas...");
 window.location.href="notas.php";
</script>
Bueno creo q entienden este pequeño codigo y su funcionalidad, ahora el detalle es que, al regresar a "notas.php" ya no aparece el select que se atrae desde "ingresar.php" y es porque no envia el codigo del profesor que era el parametro con el que reconocia, es decir en la URL de notas salia lo siguiente:

http://localhost/html/cursos/profeso...codigo=c075846

Y al regresar luego de ingresar los datos sale de la siguiente forma:

http://localhost/html/cursos/profesor/notas.php

y es porque no toma como digo, el codigo del profe que lo referencia.

Creo que saben ahora cual es mi duda, como puedo hacer para que vuelva a salir de la misma forma la 1era URL dspues de haber ingresado las notas... yo crei que era por variables de Sesion, pero no estoy seguro.


Por fa si me pueden ayudar
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 02:43.