[gepi-users] gepi1.5: pb parents de plusieurs enfants

Thomas BELLIARD thomas.belliard at free.fr
Lun 12 Mar 10:09:29 CET 2007


Bonjour,

Je viens de regarder à nouveau le code de création des comptes parents, 
et je ne comprends pas d'où peut venir le problème.

David, est-ce que tu pourrais vérifier dans ta base de données qu'il n'y 
a pas eu saisie multiple des responsables ?
La requête SQL qui génère la liste des comptes à créer ne me semble pas 
comporter de bug.
En mode création par lot "toutes les classes" :
$quels_parents = mysql_query("SELECT distinct(r.pers_id), r.nom, 
r.prenom, r.civilite, r.mel " .
					"FROM resp_pers r, responsables2 re, classes c, j_eleves_classes 
jec, eleves e WHERE (" .
					"r.login = '' AND " .
					"r.pers_id = re.pers_id AND " .
					"re.ele_id = e.ele_id AND " .
					"e.login = jec.login AND " .
					"jec.id_classe = c.id)");

On a bien un distinct sur pers_id, donc normalement on ne peut pas avoir 
le même parent deux fois (pers_id est considéré comme étant 
l'identifiant unique d'un parent), et on a également un test sur login 
pour être sûr que le parent en question n'a pas déjà un compte 
d'utilisateur...

En mode création par lot pour une classe, c'est sensiblement la même 
chose, avec simplement un changement pour limiter à une classe spécifique :

			$quels_parents = mysql_query("SELECT distinct(r.pers_id), r.nom, 
r.prenom, r.civilite, r.mel " .
"FROM resp_pers r, responsables2 re, classes c, j_eleves_classes jec, 
eleves e WHERE (" .
"r.login = '' AND " .
"r.pers_id = re.pers_id AND " .
"re.ele_id = e.ele_id AND " .
"e.login = jec.login AND " .
"jec.id_classe = '" . $_POST['classe']."')");

Donc vraiment vérifie que la base à partir de laquelle tu génères les 
comptes est correctement renseignée. Si elle l'est, alors détaille 
l'intégralité de la procédure que tu as suivie.

Essaie avec les différents mode de création de compte (un seul compte 
[création manuelle], comptes pour une classe, comptes pour toutes les 
classes).

Aussi, dans le cas d'une création pour toutes les classes, seuls les 
responsables associés correctement à un élève lui-même associé à une 
classe sont créés. Un responsable qui n'est associé à aucun élève ou 
bien qui est associé à un élève lui-même non associé à une classe ne 
sera pas créé dans le cas d'un traitement par lot. Ceci pour éviter 
d'avoir des comptes fantômes.

Le principe est le même pour la génération des fiches bienvenues (et la 
réinitialisation des mots de passe par lot) : seuls les comptes associés 
à des élèves associés à des classes sont pris en compte.

Donc pour conclure : en regarde les différentes requêtes et le code, je 
n'ai pas trouvé de bug. Il me faut donc vraiment plus d'infos et de 
vérifications du côté de ta base pour identifier la source exacte du 
problème. Il est possible que le bug remonte à la conversion du modèle 
des tables des responsables...

Thomas

Stephane Boireau (Animateur TICE Bernay/Pont-Audemer) a écrit :
> Bonjour,
> 
> Le dimanche 11 mars 2007 10:34, david_Pailler a écrit :
>> Je confirme le problème de la création des comptes parents l'ensemble de
>> mots de passe en affichage et en impression imopssible d'avoir les 920
>> comptes (fiches de bienvenue)
>>
>> Maintenant , j'ai voulu me connecté en tant que parents d'une famille ou
>> trois de leurs enfants sont scolarisés chez nous.
>> Or , après connexion, il n'y avait que les données pour un enfant.
>> Après vérification dans le fichier , pour chaque enfant, un compte
>> parent a été crée, donc, il y a en tout 6 comptes d'accès parents !
>> azezeze; azezeze1; azezeze2;azezeze3, azezeze4; azezeze5 !!
>>
>> Il me semble que c'est un problème qui va rebuter plus d'un parent.
>> Un compte par parent me semble bien suffisant, pour cela il faudrait
>> comparer, au moment de la création, le nom, le prénom des parents, celui
>> des élèves et l'adresse.
> 
> C'est un bug.
> Il devra être corrigé.
> Chaque parent a son propre identifiant (pers_id).
> Si tu as autant de comptes parents que d'enfants c'est que le script se base 
> quelque part sur l'ele_id, l'elenoet ou le login de l'élève.
> Je n'ai pas le temps pour le moment de creuser...
> ... nul doute que Thomas qui a cela tout frais dans son esprit, puisqu'il est 
> à l'origine de cette partie du code;o), règlera ce bug rapidement.
> 
> Cordialement.




Plus d'informations sur la liste de diffusion gepi-users