Checkbox avec base de données sql

Fermé
nessrinekachroudi Messages postés 2 Date d'inscription lundi 19 avril 2010 Statut Membre Dernière intervention 19 avril 2010 - 19 avril 2010 à 13:33
nessrinekachroudi Messages postés 2 Date d'inscription lundi 19 avril 2010 Statut Membre Dernière intervention 19 avril 2010 - 19 avril 2010 à 17:50
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 2 Date d'inscription lundi 19 avril 2010 Statut Membre Dernière intervention 19 avril 2010
19 avril 2010 à 17:50
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