Bonjour,
Donc avec l'aide d'une personne j'ai écrit ce script.
Il a pour but de mettre a jour les absences et retards dans une base de données mysql.
Je l'ai remodifier plusieurs fois de différentes manières concernant la ligne des retards car celle-ci ne fonctionne pas comme elle devrait.
Il est fort possible que je me sois trompé dans la synthaxe mais je n'arrive pas à trouver, si quelqu'un a une solution a mon problème merci de me la communiquer.
L'heure a partir de laquelle le prochain scan sera compté comme en retard se situe sur une autre table de ma database.
Ma database: IDBT
La table des utilisateurs: Students
La table des horaires: Horaire6Qinf
La colonne ID_Horaire est présente dans les 2 tables.
Last_Scan: heure du dernier scan
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 #!/bin/bash ID="" LASTSCAN="" NOM="" PRENOM="" mapfile result < <(mysql --user="dev" --password="123456" --database="IDBT" -se "select Nom,Prenom ,IDStudent,TIME(Last_Scan) from Students ") for row in "${result[@]}";do IFS=' ' read -r -a array <<< "$row" echo "Calcul de : "${array[0]}" "${array[1]}"" NOM=${array[0]} PRENOM=${array[1]} ID=${array[2]} LASTSCAN=${array[3]} #!récupérer les horaires mapfile ho < <(mysql --user="dev" --password="123456" --database="IDBT" -se "select Horaire6Qinf.ID_Horaire from Horaire6Qinf,Students where Students.ID_Horaire = Horaire6Qinf.ID_Horaire") IFS=' ' read -r -a tbho <<< "$ho" NUM_JOUR=1 HEURE_HORAIRE=${tbho[$NUM_JOUR]} #!"$(date +%u)" echo " Heure d'arrivée : "$LASTSCAN if [ "$LASTSCAN" == 'NULL' ] then mysql --user="dev" --password="123456" --database="IDBT" --execute="UPDATE Students set Absence = Absence+1 where IDStudent ="$ID" ; " #!echo "---> Absent" fi if [ TIME"$LASTSCAN" > '$HEURE_HORAIRE' ] then mysql --user="dev" --password="123456" --database="IDBT" --execute="UPDATE Students set Retard = Retard+1" where [ TIME"$LASTSCAN" >= '$HEURE_HORAIRE' ] fi done
Partager