Tu pourrais ajouter une colonne dans la table "eleve" nommée "nbre_redoublement" où tu mettrais le nombre de redoublement d'un élève comme ça tu saurais en combien d'années un élève a suivi son BTS (2 ans pour le BTS normal + le nombre de redoublement). Tu pourrais aussi ajouter une seconde colonne que tu pourrais nommer "resultat" et qui aurait comme valeurs : "réussite" si l'élève a obtenu son BTS ou "échec" pour l'échec de l'élève (la valeur par défaut reste vide ou "en cours de formation").finalement pour l'archivage je vais rajouter juste un champ "année" (ou année scolaire) dans "eleve" (ou une table je sais pas ce qui est le mieux ) que l'on modifiera de 1ére à 2éme année ou bien "ancien élèves" comme ça le directeur change si l'éléve passe en 2nde année ou bien si il redouble. Donc il faudrait que j'archive les élèves qui seront dans la catégorie "ancien élèves" sans supprimer pour autant les donnée d'assiduite mais le hic c'est que je voudrais savoir si l'élève a fait son bts en 2 ou 3 ans et sur quelle année pour que quand je cherche dans les archive çela me facilite la tâche.
Est-ce possible?
Tu pourrais même ajouter une colonne "date_fin_formation" pour enregistrer la date de fin de formation par élève.
Je te rappelle qu'on a déjà fait cette requête qu'on a créée sous forme de VUE nommée `nbre_heures_absence`:De plus j'aimerais ajouter dans ma "consultation d'assiduité" un bouton qui me diras les jours d'absences d'un élèves et ses heures d'absences pour ces jours là, y a t'il une requête SQL qui pourrait faire ça ?
CREATE VIEW `nbre_heures_absence` AS
select `assiduite`.`date` AS `date`,`assiduite`.`idEleve` AS `idEleve`, sum((8 - ((((`assiduite`.`presence_mat_t1` * 2) + (`assiduite`.`presence_mat_t2` * 2)) + (`assiduite`.`presence_amidi_t1` * 2)) + (`assiduite`.`presence_amidi_t2` * 2)))) AS `nbre_heures_absence`
from `assiduite`
group by `assiduite`.`date`,`assiduite`.`idEleve`;
Donc, pour afficher le nombres d'heures d'absence par jour pour un élève il suffit de faire un SELECT sur cette vue avec un WHERE qui extrait simplement les enregistrement concernant un élève donné. Comme ça par exemple:
// idEleve sélectionné dans le formulaire
$idEleve = isset($_GET['idEleve']) && !empty($_GET['idEleve']) ? $_GET['idEleve'] : null;
// requête SQL: Nombre d'heures d'absence par jour pour l'élève $idEleve
$sql = "SELECT * FROM `nbre_heures_absence` WHERE idEleve = '". $idEleve . "' ORDER BY date";
T'as oublié de mettre la variable $nom entre guillemets dans la requête DELETE car le nom est une chaine de caractères,et autre petit souci :
j'ai ajouter des pages pour ajouter et supprimer les profs, l'ajout marche parfaitement mais pas la suppression pourtant j'ai repris comme pour l'élève :
Correction:
$sql = 'DELETE FROM prof WHERE nom="' . $nom '" '.
Pour ce qui est de la modification d'un élève, il faut exécuter une requête UPDATE. Voici l'algorithme de la modif comme celui de la suppression:1. Avoir afficher les données d'un élève en exécutant une requête: SELECT * FROM eleve WHERE idEleve = $idEleve
2. Quand l'utilisateur aurait modifié certaines zones de données (excepté l'idEleve qui sera affiché en lecture seule) il demandera l'enregistrement des modifications en appuyant sur un bouton spécifique.
3. Quand l'action déclenchée est : L'enregistrement des modifications, le programme PHP exécutera la requête:
UPDATE eleve SET nom="$nom", prenom="$prenom" WHERE idEleve=$idEleve
Tu complèteras cette requête en ajoutant tous les champs que tu souhaite modifier. Le champ idEleve est la clé primaire, il est donc interdit de la modifier, elle sera affichée sur le formulaire dans une zone input cachée (hidden) nommée idEleve ou dans un input de type text avec l'attribut: disabled ou readonly. C'est normal sinon on ne pourra pas faire l'Update qui dépond du WHERE idEleve=$idEleve.
Toutes les variables : $idEleve, $nom, $nom, ... proviennent donc du formulaire de modification.
Voilà.