Checkbox avec base de données sql

nessrinekachroudi Messages postés 3 Statut Membre -  
nessrinekachroudi Messages postés 3 Statut Membre -
Bonjour,j'ai un problème au niveau de checkbox,j'ai un formulaire sous forme d'un tableau de coordonnées des étudiants (les coordonnées sont enregistrées dans la table affilié) :nom prénom adresse etc,et dans chaque ligne càd pour chaque étudiant j'ai un checkbox pour valider les coordonnées de chaque étudiant et quand je clique sur le bouton "valider" les données seront insérées dans une table "test",mon problème c'est que lorsque je coche la case à cocher et je valide il ne prend en charge que la dernière ligne du tableau càd les coordonnées du dernier étudiant dans le tableau seulement seront enregistées dans la table "test",s'il vous plait aidez moi c'est mon projet de fin d'étude,mes salutations les plus distinguées.

voici le code des pages php j'ai deux pages consulter.php et fenetre.php:
c'est le code de la page consulter.php:

<form name="formulaire" method="POST" action="fenetre.php">

<?php

// on se connecte à MySQL
$db = mysql_connect('localhost', 'root', '');

// on sélectionne la base
mysql_select_db('nessrine',$db);
if($_POST['ok'])
{
$naissance=$_POST['naissance'];
if(!isset($naissance)){
die("année erronné");
}

$sql = "SELECT id,nom,prenom,naissance,adresse,num FROM affilié WHERE '".$naissance."'-(SELECT EXTRACT(YEAR FROM naissance))='20' AND etat='invalide'";

$result = mysql_query($sql) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
// si on a récupéré un résultat on l'affiche.

if($total) {

echo '<table width="1000" height="58" border="2" >';

echo '<tr>';
echo'<td width="144"><font color="#000000" size="4" face="Georgia, Times New Roman, Times, serif"><center>Identifiant</center></font></td>';
echo'<td width="144"><font color="#000000" size="4" face="Georgia, Times New Roman, Times, serif"><center>Nom</center></font></td>';
echo'<td width="144"><font color="#000000" size="4" face="Georgia, Times New Roman, Times, serif"><center>Prénom</center></font></td>';
echo'<td width="144"><font color="#000000"size="4" face="Georgia, Times New Roman, Times, serif"><center>Date Naissance</center></font></td>';
echo'<td width="144"><font color="#000000" size="4" face="Georgia, Times New Roman, Times, serif"><center>Adresse</center></font></td>';

echo'<td width="144"><font color="#000000"size="4" face="Georgia, Times New Roman, Times, serif"><center>Action</center></font></td>';
echo'<td width="144"></td>';
echo '</tr>';

while($row = mysql_fetch_array($result)) {
echo '<tr>';
echo '<td><center><input type="text" name="id" value='.$row["id"].'></center></td>';
echo '<td bgcolor="#CCCCCC"><center><input type="text" name="nom" value='.$row["nom"].'></center></td>';
echo '<td bgcolor="#CCCCCC"><center><input type="text" name="prenom" value='.$row["prenom"].'></center></td>';
echo '<td bgcolor="#CCCCCC"><center><input type="text" name="naissance" value='.$row["naissance"].'></center></td>';
echo '<td bgcolor="#CCCCCC"><center><input type="text" name="adresse" value='.$row["adresse"].'></center></td>';

echo"<td><a href=\"mod.php?id=".$row["id"]."\"> Modifier </a></td>";
echo '<td bgcolor="#FFFFCC"><center>'.$row["num"].'<input type="checkbox" name="delete[] " value='.$row["id"].'> </center></td>';
echo'</tr>';

}

echo '</table>';
echo'<table>';
echo '<tr>';
echo '<br>';
echo '                                                                                                                                                                                                                                  ';
echo'<input type="submit" value="enregistrer" name="valider" >';
echo'</tr>';
echo'</table>';

}
else echo'Pas d\'enregistrements dans cette table...';

// on libère le résultat
mysql_free_result($result);
}
?>

</form>

et voici le code de la page fenetre.php:

<?php
$nom=$_POST['nom'];
if(!isset($nom)){
die("nom erronné");
}
$prenom=$_POST['prenom'];
if(!isset($prenom)){
die("prenom erronné");
}
$naissance=$_POST['naissance'];
if(!isset($naissance)){
die("date erronné");
}
$adresse=$_POST['adresse'];
if(!isset($adresse)){
die("adresse erronné");
}

$delete=$_POST["delete"];
if(!isset($delete)){
die("tab erronné");
}

// on se connecte à MySQL
$db = mysql_connect('localhost', 'root', '');

// on sélectionne la base
mysql_select_db('nessrine',$db);

if (sizeof($delete)==0){

exit;}
else{
$i=1;
while($i< sizeof($delete)):
$ins="INSERT INTO test(nom,prenom,naissance,adresse,num,id,etat) VALUES('$nom','$prenom','$naissance','$adresse','$delete[i]','$id','invalide')";
$req1= mysql_query($ins);

echo $i;
$i++;

endwhile;
}

mysql_close();

?>

1 réponse

nessrinekachroudi Messages postés 3 Statut Membre
 
merci Jessy,j'ai enlevé la boucle while et je l'ai remplacé par foreach mais il ne prend en charge que les coordonnées du dernier étudiant seulement(dernier enregistrement du tableau)
foreach ($delete as $valeur){
mysql_query("INSERT INTO test(nom, prenom, naissance, adresse,num,id,etat) VALUES ('$nom', '$prenom', '$naissance', '$adresse', '$valeur', '$id', 'valide')");
}
0