par
iruka » 25 mai 2006, 04:18
bon, j ai presque trouve!!!!
y avait une grosse erreur! je fermais le formulaire a chaque fin de boucle au lieu de fermer le formulaire en dehors de la boucle! forcement ca allait pas marche correctement...
mais bon, j ai cependant un petit souci : lorsque je coche une case pour l effacer (ou plusieurs maintenant!), il efface bien la ou les donnees dans la table mais j ai les donnees effacees qui apparaissent quand meme lors du rechargement de la page

il faut que je reappuie sur le bouton effacer pour que cette fois les donnees disparaissent de l affichage
ca doit etre une condition que j ai foire, je vais regarder ca de plus pres...
voila le code qui fonctionne (a peu pres, disons que je peux effacer plusieurs donnees lorsque je choisis des checkbox, c etait mon probleme initial)
<?php
include ("connexion/mysql.inc.php");
// je verifie que le formulaire a ete envoye et qu il a passe mon test
if (isset($_POST['nom2']) && $i==1){
// si oui, j insere les informations du formulaire dans la table
$sql = "INSERT INTO education(id,schoolname,graduation,schoollevel,educationmonth,educationyear) VALUES ('$id','$nomecole','$degree','$ecolelevel','$educationmois','$educationannee')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}
// je selectionne les donnees dans la table
$sql2 = mysql_query("SELECT * FROM education WHERE id=$id ORDER BY educationyear DESC");
$total = mysql_num_rows($sql2);
// s il y a des donnees, je les affiche
if ($total >0) {
echo "<form name=\"delete\" method=\"post\" action=\"education.php\">";
echo"<tr>";
echo"<td colspan=\"6\" class=\"submessage\">";
echo" vos donnees";
echo" </td>";
echo" </tr>";
echo"<tr>";
echo"<td class=\"header\" align=\"center\">annee</td>";
echo" <td class=\"header\" align=\"center\">mois</td>";
echo" <td class=\"header\" align=\"center\" width=\"80%\">ecole</td>";
echo" <td class=\"header\" align=\"center\" width=\"10%\"><br/></td>";
echo" <td class=\"header\" align=\"center\" width=\"10%\"><br/></td>";
echo" </tr>";
while ($donnees = mysql_fetch_array($sql2) )
{
echo" <tr>";
echo" <td class=\"input1\">";
echo $donnees['educationyear'];
echo "</td>";
echo" <td class=\"input1\">";
echo $donnees['educationmonth'];
echo" </td>";
echo" <td class=\"input1\">";
echo $donnees['schoolname'];
echo" </td>";
echo" <td class=\"input1\">";
echo $donnees['schoollevel'];
echo" </td>";
echo" <td class=\"input1\">";
echo $donnees['graduation'];
echo" </td>";
echo" <td class=\"input1\" align=\"center\">";
echo" <input type=\"checkbox\" name=\"aeffacer[]\" value=\"".$donnees['auto']."\" >";
echo" </td>";
echo" </tr>";
echo" </tr>";
}
// je verifie la valeur de la case a cocher
$effacer = (isset($_POST['aeffacer'])) ? $_POST['aeffacer']:null;
// si elle n est pas vide, je cherche les cases cochees et j efface les donnees avec une requete
if (!empty($effacer))
{
foreach($effacer as $valeur)
{
$sql2 = "DELETE FROM education WHERE auto=".$valeur."";
echo $sql2."<br>";
$sql2=mysql_query($sql2);
echo $sql2."<br>";
}
}
//je ferme le formulaire
echo" <tr>";
echo" <td class=\"header\" align=\"center\">";
echo" <input type=\"submit\" name=\"nom\" value=\"effacer\">";
echo" </td>";
echo" </tr>";
echo"</form>";
}
?>
bon, j ai presque trouve!!!!
y avait une grosse erreur! je fermais le formulaire a chaque fin de boucle au lieu de fermer le formulaire en dehors de la boucle! forcement ca allait pas marche correctement...
mais bon, j ai cependant un petit souci : lorsque je coche une case pour l effacer (ou plusieurs maintenant!), il efface bien la ou les donnees dans la table mais j ai les donnees effacees qui apparaissent quand meme lors du rechargement de la page :shock: il faut que je reappuie sur le bouton effacer pour que cette fois les donnees disparaissent de l affichage
ca doit etre une condition que j ai foire, je vais regarder ca de plus pres...
voila le code qui fonctionne (a peu pres, disons que je peux effacer plusieurs donnees lorsque je choisis des checkbox, c etait mon probleme initial)
[php]
<?php
include ("connexion/mysql.inc.php");
// je verifie que le formulaire a ete envoye et qu il a passe mon test
if (isset($_POST['nom2']) && $i==1){
// si oui, j insere les informations du formulaire dans la table
$sql = "INSERT INTO education(id,schoolname,graduation,schoollevel,educationmonth,educationyear) VALUES ('$id','$nomecole','$degree','$ecolelevel','$educationmois','$educationannee')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}
// je selectionne les donnees dans la table
$sql2 = mysql_query("SELECT * FROM education WHERE id=$id ORDER BY educationyear DESC");
$total = mysql_num_rows($sql2);
// s il y a des donnees, je les affiche
if ($total >0) {
echo "<form name=\"delete\" method=\"post\" action=\"education.php\">";
echo"<tr>";
echo"<td colspan=\"6\" class=\"submessage\">";
echo" vos donnees";
echo" </td>";
echo" </tr>";
echo"<tr>";
echo"<td class=\"header\" align=\"center\">annee</td>";
echo" <td class=\"header\" align=\"center\">mois</td>";
echo" <td class=\"header\" align=\"center\" width=\"80%\">ecole</td>";
echo" <td class=\"header\" align=\"center\" width=\"10%\"><br/></td>";
echo" <td class=\"header\" align=\"center\" width=\"10%\"><br/></td>";
echo" </tr>";
while ($donnees = mysql_fetch_array($sql2) )
{
echo" <tr>";
echo" <td class=\"input1\">";
echo $donnees['educationyear'];
echo "</td>";
echo" <td class=\"input1\">";
echo $donnees['educationmonth'];
echo" </td>";
echo" <td class=\"input1\">";
echo $donnees['schoolname'];
echo" </td>";
echo" <td class=\"input1\">";
echo $donnees['schoollevel'];
echo" </td>";
echo" <td class=\"input1\">";
echo $donnees['graduation'];
echo" </td>";
echo" <td class=\"input1\" align=\"center\">";
echo" <input type=\"checkbox\" name=\"aeffacer[]\" value=\"".$donnees['auto']."\" >";
echo" </td>";
echo" </tr>";
echo" </tr>";
}
// je verifie la valeur de la case a cocher
$effacer = (isset($_POST['aeffacer'])) ? $_POST['aeffacer']:null;
// si elle n est pas vide, je cherche les cases cochees et j efface les donnees avec une requete
if (!empty($effacer))
{
foreach($effacer as $valeur)
{
$sql2 = "DELETE FROM education WHERE auto=".$valeur."";
echo $sql2."<br>";
$sql2=mysql_query($sql2);
echo $sql2."<br>";
}
}
//je ferme le formulaire
echo" <tr>";
echo" <td class=\"header\" align=\"center\">";
echo" <input type=\"submit\" name=\"nom\" value=\"effacer\">";
echo" </td>";
echo" </tr>";
echo"</form>";
}
?>[/php]