Bonjour,
J’ai une table qui s’appelle ‘’eleves’’ et qui est composée de 3 colonnes : « id » , « prenom » et « classe » je veux lister tous les enregistrements contenus dans cette table dans un tableau qui aura 4 colonnes : :« id » , « prenom » , « classe » et une dernière colonne qui contiendra pour chaque enregistrement une case à cacher .
Jusque-là tout se passe bien, mon tableau s’affiche correctement. Maintenant je souhaiterais une fois le tableau affiché effectuer des sélections parmi les enregistrements du tableau via les cases à cocher, ensuite insérer toutes ces sélections dans une nouvelle table dénommé ‘’absents’’ et qui comporte les mêmes champs que la table élèves , c’est à ce niveau que ça devient corsé pour moi , voilà des jours que je cherche une solutions dans Google mais je ne trouve rien , voulez-vous m’aider SVP ça me pourri l’existence pour le moment.
Voici mon code

<html > 
<body> 

<form method='POST' action='checkbox_tabinsert_bdd.php'>
<table border="1">
<tr>
<td width=''>Prénom</td>
<td width=''>classe</td>
<td width=''>Choix</td>
</tr>

<?php
        try
            {
 // On se connecte à MySQL
          $bdd = new PDO('mysql:host=localhost;dbname=comptes;charset=utf8',
          'root','');
             }
  catch(Exception $e)
            {
    // En cas d'erreur, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
            }
 $reponse = $bdd->query('SELECT * FROM eleves');
  // On affiche chaque entrée une à une
    while ($donnees = $reponse->fetch())
            {
echo"<tr><td>".$donnees['prenom']."</td>";
echo"<td>".$donnees['classe']."</td>";
echo"<td><input type='checkbox' name='choix[]' value=' ".$donnees['id']." ".$donnees['prenom']." ".$donnees['classe']." '></td>";
echo"</tr>";
            }
$reponse->closeCursor(); 

?>
</table>
<p>
<input type="submit" value="enregistrer" name="enregistrer">


</form>




<?php
if (isset($_POST['enregistrer']))
{
    $valeurs_selectionnees = $_POST['choix'];
	   if(isset($valeurs_selectionnees))
		 {
		   echo 'kes eleves absents sont :'.'<br><br />';
			 foreach($valeurs_selectionnees as $element)
			   echo $element. '<br/>';
			    { 
				//connection a la base de données
				    try
                         {
                         // On se connecte à MySQL
                            $bdd = new PDO('mysql:host=localhost;dbname=comptes;charset=utf8', 'root','');
                         }
                    catch(Exception $e)
                         {
                          // En cas d'erreur, on affiche un message et on arrête tout
                          die('Erreur : '.$e->getMessage());
                          }
                         //j'enregistre les eleves sélectionnés dans la table
                          $req = $bdd->prepare('INSERT INTO absents( prenom, classe) VALUES(:prenom ,:classe)');
                          $req->execute(array(
                          'prenom' => Je ne sais pas ce qu'il faut mettre ici
						  'classe' => Je ne sais pas ce qu'il faut mettre ici,
                            ));
                          $req->closeCursor();
                          }
				echo 'eleves reportes sur la liste des absents  '.'<br><br />';
		   }
 }
?>
</body>
</html>

Modifié par abdoulayecoumba (11 Jul 2017 - 18:02)
salut,
je pense que ton approche n'est pas la meilleure.

Dans un cas général, si ta table absents contiendra des informations déjà présentes dans la table eleves, tu n'as pas besoin de transférer l'ensemble des valeurs.
Tu auras simplement besoin de l'ID de ta première table que tu incluras dans la seconde. Celui-ci devient une clé étrangère avec des contraintes à gérer.

Cela dit, dans ton cas précis, je ne vois pas ce qui t'empêche d'ajouter un champ de type booléen à ta table eleves et qui indiquera si l'élève est absent ou non.