function verif_date($date_fr) { $jour = ''; $mois = ''; $annee = ''; if ($date_fr != '') { list($jour, $mois, $annee) = explode('/', $date_fr); if (verif_num($jour) and verif_num($mois) and verif_num($annee)) { if (checkdate($mois, $jour, $annee)) { $verif = TRUE; } else { $verif = FALSE; } } else { $verif = FALSE; } } else { $verif = FALSE; } return $verif; }
function gerer_absence($id='',$eleve_id,$retard_absence,$groupe_id='',$edt_id='',$jour_semaine='',$creneau_id='',$debut_ts,$fin_ts,$date_saisie,$login_saisie='',$action) { global $prefix_base; /* $eleve_id -> login de l'élève $retard_absence -> R ou A $groupe_id -> vide $edt_id -> vide $jour_semaine -> vide $creneau_id -> vide $debut_ts -> debut en timestamp / mktime(heure, minute, 0, mois, jour, annee); $fin_ts -> fin en timestamp / mktime(heure, minute, 0, mois, jour, annee); $date_saisie -> date de saisi en timestamp / mktime(heure, minute, 0, mois, jour, annee); $login_saisie -> login de la personne pour la saisi $action -> ajouter */ if ( $action === 'ajouter' ) { // on vérifie qu'une absence ne se trouve pas entre le début et la fin de celle saisie $cpt_ligne = old_mysql_result(mysqli_query($GLOBALS["mysqli"], "SELECT count(*) FROM " . $prefix_base . "absences_rb WHERE eleve_id = '" . $eleve_id . "' AND retard_absence = '" . $retard_absence . "' AND debut_ts >= '" . $debut_ts . "' AND fin_ts <= '" . $fin_ts . "'" ),0); // s'il n'y aucun enregistrement qui correspond alors on l'ajoute if ( $cpt_ligne == 0 ) { $saisie_sql = "INSERT INTO absences_rb (eleve_id, retard_absence, groupe_id, edt_id, jour_semaine, creneau_id, debut_ts, fin_ts, date_saisie, login_saisie) VALUES ('" . $eleve_id . "', '" . $retard_absence . "', '" . $groupe_id . "', '0', '" . $jour_semaine . "', '" . $creneau_id . "', '" . $debut_ts . "', '" . $fin_ts . "', '" . $date_saisie . "', '" . $_SESSION["login"] . "')"; $insere_abs = mysqli_query($GLOBALS["mysqli"], $saisie_sql) OR DIE ('Erreur SQL !'.$saisie_sql.'<br />'.mysqli_error($GLOBALS["mysqli"]));//('Impossible d\'enregistrer l\'absence de '.$eleve_absent[$a]); } else { // nous allons lister toutes les enregistrement $requete = ("SELECT * FROM " . $prefix_base . "absences_rb WHERE eleve_id = '" . $eleve_id . "' AND retard_absence = '" . $retard_absence . "' AND debut_ts >= '" . $debut_ts . "' AND fin_ts <= '" . $fin_ts . "'" ); $execution = mysqli_query($GLOBALS["mysqli"], $requete) or die('Erreur SQL !'.$requete.'<br />'.mysqli_error($GLOBALS["mysqli"])); while ($donnee = mysqli_fetch_array($execution)) { // si le debut est la fin sont compris entre les deux valeur mais égale à aucun début // on les supprimes if ( $debut_ts > $donnee['debut_ts'] and $fin_ts < $donnee['fin_ts'] ) { gerer_absence($donnee['id'],$eleve_id,$retard_absence,'','','','',$donnee['debut_ts'],$donnee['fin_ts'],$donnee['date_saisie'],'','supprimer'); } // si le debut est égale à la valeur de début et que la fin est inférieur à la fin // ??????????????????????? // en attente de plus d'information } } } if ( $action === 'supprimer' ) { if ( !verif_num($id) ) { $req_delete = "DELETE FROM " . $prefix_base . "absences_rb WHERE id = '" . $id . "' AND retard_absence = '" . $retard_absence . "' AND debut_ts >= '" . $debut_ts . "' AND fin_ts <= '" . $fin_ts . "' "; $req_sql = mysqli_query($GLOBALS["mysqli"], $req_delete); } } }