Bonjour
Je suis actuellement sur un petit script PHP/MySQL pour un établissement scolaire et j'ai un soucis lors de l'import d'un fichier CSV.
Ce fichier recense les élèves et les parents. Chaque ligne comporte :
- nom de l'élève
- prénom de l'élève
- nom du parent 1
- prénom du parent 1
- nom du parent 2
- prénom du parent 2
L'élève est toujours présent, en revanche, il peut y avoir les 2 parents, le parent 1 seulement et le parent 2 seulement.
Pour éviter d'ajouter plusieurs fois le même parent (par exemple plusieurs élèves de la même famille dans l'établissement), je fais une vérification censée m'empêcher l'ajout si le parent est déjà présent dans la table.
Visiblement mon code de vérification ne fonctionne pas mais je n'arrive pas à trouver pourquoi.
Je suis actuellement sur un petit script PHP/MySQL pour un établissement scolaire et j'ai un soucis lors de l'import d'un fichier CSV.
Ce fichier recense les élèves et les parents. Chaque ligne comporte :
- nom de l'élève
- prénom de l'élève
- nom du parent 1
- prénom du parent 1
- nom du parent 2
- prénom du parent 2
L'élève est toujours présent, en revanche, il peut y avoir les 2 parents, le parent 1 seulement et le parent 2 seulement.
Pour éviter d'ajouter plusieurs fois le même parent (par exemple plusieurs élèves de la même famille dans l'établissement), je fais une vérification censée m'empêcher l'ajout si le parent est déjà présent dans la table.
Code:
if($fp = fopen($fichier,"r")){
//on ne lit pas la première ligne (en-tête)
$ligne = fgets($fp,4096);
/* extraction d'une ligne */
while($ligne = fgets($fp)){
$tableau = explode(';',$ligne);
for($i=0;$i<1;$i++){
//Vérification que la personne n'est pas déjà présente dans la table
$nommin1 = strtolower($tableau[4]);
$prenommin1 = strtolower($tableau[5]);
$verification = mysql_query('SELECT * FROM votants WHERE nom_votant = "'.$nommin1.'" AND prenom_votant = "'.$prenommin1.'"');
$resultat = mysql_num_rows($verification);
if($tableau[4]!='' && $tableau[5]!='' && $resultat == 0){
$parent1 = mysql_query('INSERT INTO votants (id_votant,login_votant,mdp_votant,nom_votant,prenom_votant,nom_eleve,prenom_eleve,classe_eleve,etat_votant)
VALUES ("","","","'.$tableau[4].'","'.$tableau[5].'","'.$tableau[0].'","'.$tableau[1].'","'.$tableau[2].'","")');
if($parent1){
echo 'requête '.$tableau[4].$tableau[5].' OK.<br />';
}
}
//Vérification que la personne n'est pas déjà présente dans la table
$nommin2 = strtolower($tableau[7]);
$prenommin2 = strtolower($tableau[8]);
$verification2 = mysql_query('SELECT * FROM votants WHERE nom_votant = "'.$nommin2.'" AND prenom_votant = "'.$prenommin2.'"');
$resultat2 = mysql_num_rows($verification2);
if($tableau[7]!='' && $tableau[8]!='' && $resultat2 == 0){
$parent2 = mysql_query('INSERT INTO votants (id_votant,login_votant,mdp_votant,nom_votant,prenom_votant,nom_eleve,prenom_eleve,classe_eleve,etat_votant)
VALUES ("","","","'.$tableau[7].'","'.$tableau[8].'","'.$tableau[0].'","'.$tableau[1].'","'.$tableau[2].'","")');
if($parent2){
echo 'requête '.$tableau[7].$tableau[8].' OK.<br />';
}
}
}
}
echo '<span style="color: #009900;font-weight: bold;">Upload effectué avec succès !</span><br />';
}
Visiblement mon code de vérification ne fonctionne pas mais je n'arrive pas à trouver pourquoi.