Foros del Web » Programando para Internet » PHP »

La manera mas correcta de hacerlo

Estas en el tema de La manera mas correcta de hacerlo en el foro de PHP en Foros del Web. Hola a todos. Quiero hacer una script que sea para pasar lista. Tengo unos alumnos insertados en una base de datos con un campo que ...
  #1 (permalink)  
Antiguo 24/05/2011, 15:18
Avatar de Jota_sk  
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 0
La manera mas correcta de hacerlo

Hola a todos. Quiero hacer una script que sea para pasar lista. Tengo unos alumnos insertados en una base de datos con un campo que se llama "nombre" y otro que se llama "apellido". Lo que quiero hacer es saber que alumnos han asistido y cuales no. Lo que hago es mostrar todos los alumnos ordenados por el apellido alfabéticamente. Ahora lo que quiero hacer es hacer una web modular, donde me sale el primer niño de la lista y pongo si esta o no esta, luego cojo al segundo y pongo si esta o no esta y así sucesivamente. Pero claro el orden de la tabla no es el mismo que el ordenado alfabéticamente. Y no entiendo mucho como puedo lograr esto. Alguna idea?
  #2 (permalink)  
Antiguo 24/05/2011, 15:28
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: La manera mas correcta de hacerlo

Tenes que hacer la consulta a mysql con un order by apellido desc, y que por cada persona aparesca un checkbox que si lo activas automaticamente quede como presente el dia ese.

Saludos
  #3 (permalink)  
Antiguo 24/05/2011, 15:36
Avatar de scorpion3d  
Fecha de Ingreso: mayo-2011
Mensajes: 92
Antigüedad: 12 años, 11 meses
Puntos: 19
Respuesta: La manera mas correcta de hacerlo

Yo crearía una segunda tabla llamada "asistencia" en la cual guardaría tres valores:
1. La fecha en que se pasó la lista
2. El Id (codigo o numero de lista) del Alumno
3. Una variable con un "SI" para afirmar asistencia y un "NO" en el caso contrario

Elaboraría una consulta en una pagina y como dice marcofbb marcaría en un checkbox a los alumnos que asistieron y al final enviaría los datos a la tabla que mencioné

Saludos
__________________
www.elias.com.sv
  #4 (permalink)  
Antiguo 24/05/2011, 16:57
Avatar de Jota_sk  
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: La manera mas correcta de hacerlo

A ver hasta ahora lo que he hecho es por una parte mostrar todos los alumnos de la tabla ordenados por apellidos.

Tambien he creado el siguiente codigo

Código PHP:
<form action="asistencia.php" method="POST">
<?php
$query 
'SELECT * FROM '.$tablausuarios.' WHERE autorizado = "si" ORDER by apellido ASC';
$result mysql_query($query,$conn);
while(
$row mysql_fetch_array($result)){
    echo 
'<select name="'.$row['alumno'].'">';
        echo 
'<option value="si" selected>Si</option>';
        echo 
'<option value="no">No</option>';
    echo 
'</select>';
    echo 
'<strong>'.$row['alumno'].'</strong>';
}
?>
<input type="submit">
</form>
Ahora lo que no consigo entender es una vez pasada la lista como consigo procesar todo estos resultados? Porque en la tabla alumnos solo se muestran los que en el campo autorización tiene un "si" por lo tanto no se muy bien como procesarlo, quizás eso me esta mareando. Habia pensado en tambien meterle un campo oculto que me muestra el id del alumno para poder insertarlo en la tabla "asistencia" junto si ha asistido.
  #5 (permalink)  
Antiguo 24/05/2011, 17:55
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: La manera mas correcta de hacerlo

Tenes que hacer un boton que diga guardar y al apretarlo guarde los datos a la mysql con otro bucle

y tenes


Alumnos

ID | Alumno
1 | Marco
2 | pepe

Lista

ID | Dia | Presentes | ausentes
1 | 24/5 | 1 o marco | 2 o pepe


Ahi vas auto-generando tablas por dia, si no vas a perder la lista, despues de hacer esto se te facilitara poner los que estan presente a la derecha y los ausentes a la izquierda
  #6 (permalink)  
Antiguo 25/05/2011, 05:12
Avatar de Jota_sk  
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: La manera mas correcta de hacerlo

Si lo que no entiendo es como hacer el bucle ese para recoger todos las datos de la tabla. Ya que la tabla puede cambiar porque hoy puedo pasar lista de 5 alumno y mañana de 30.
  #7 (permalink)  
Antiguo 25/05/2011, 06:15
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: La manera mas correcta de hacerlo

debes trabajar el select como un array de esta manera
Código HTML:
Ver original
  1. <select name="asistencia_alumno[]">
  2. <option value="si">Si</option>
  3. <option value="no">No</option>
de tal manera que cuando vayas a hacer el proceso tengas un arreglo con los valores del select y lo puedas recorrer de esta manera
Código PHP:
Ver original
  1. foreach($_POST['asistencia_alumno'] as $key => $value){
  2.     echo "el indice es $key el valor es $value";
  3. }
saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #8 (permalink)  
Antiguo 25/05/2011, 13:50
Avatar de Jota_sk  
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: La manera mas correcta de hacerlo

gracias a todos, ya lo he solucionado con el codigo que ha dicho carlos

Etiquetas: Ninguno
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 10:57.