begin process at 2012 05 31 07:09:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Problème php/mysql et checkbox


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème php/mysql et checkbox

jeudi 9 juin 2011 à 09:57:22 | Problème php/mysql et checkbox

mary62

Bonjour à tous,

Voilà j'ai un gros problème depuis hier et je cherche quelqu'un qui pourrait m'aider.
Je crée actuellement une application qui gere des inscriptions.
Voici la page où on selectionne la date et en fonction de la date selectionnée, les enfants inscrits s'affichent dans un tableau avec leurs prévisions de présence et dans les 3 dernières colonnes il y a 3 cases à cocher où l'on coche si l'enfant a été présent comme prévu ou pas le matin/midi/après-midi.
Moi ce que je souhaite c'est cocher les cases et que la valeur de la case cochée s'insere dans ma table inscription.
Comme sa par la suite,on pourra afficher un tableau avec les previsions et les réalisations.
J'ai essayé insert into et update mais sans résultat.
J'espère avoir été assez claire et si vous pouviez m'aider en me disant ce qui bloque la récuperation des données des checkbox où me donner la demarche ça serait géniale car je suis vraiment bloqué.
Merci

Voici mon code :

Page avec les cases a cocher

Code PHP :
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link href="style.css" rel="stylesheet" type="text/css" />
  </head>
  <body>
      


<?php
        include("menu.inc");
        echo'<div class="borduretitre">';
        ?>
<?php
if(isset($_POST['liste1'])){
	//si la liste a été "postée" c'est à dire choix fait
	$liste1=$_POST['liste1'];
}else{
	$liste1=-1;
}
?>

Sélectionnez un mercredi :
<form name="form1" method="post" action="">
<select name="liste1" onchange=" form1.submit();">
<option value=-1>-- Choisissez -- </option>
<br> <br>
<?php

$connection = mysql_connect('localhost', 'root', 'mysql');
$base = mysql_select_db('Centre_aere');

$requete = "SELECT Date FROM Date_mercredi Order by Id";
$execution_requete = mysql_query($requete);
while($total = mysql_fetch_array($execution_requete))

//Liste déroulante
{
echo "<option value=\"".$total["Date"]."\"";
if($liste1==$total['Date']) { echo "selected"; }//ça c'est pour garder la selection lors du réaffichage
echo ">".$total['Date']."</option>\n";

}

?>
</select>


<br/>
</form>

<?php
$requete1 = "SELECT Nom,Previsions_AM,Previsions_R,Previsions_PM FROM Inscription_mercredi WHERE Date='".$liste1."'";
$execution_requete1 = mysql_query($requete1);
$tot = mysql_num_rows($execution_requete1);
 // accolade de fin de if liste postee

// si on a récupéré un résultat on l'affiche.
if($tot) {
    // debut du tableau
    echo '<p align="center"><table bgcolor="#FFFFFF" border="4" cellpadding="4" cellspacing="2"></p>'."\n";
        
        echo '<tr>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Nom</u></b></font></td>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Previsions_Matin</u></b></font></td>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Previsions_Midi</u></b></font></td>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Previsions_Après-midi</u></b></font></td>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Realisations_Matin</u></b></font></td>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Realisations_Midi</u></b></font></td>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Realisations_Après-midi</u></b></font></td>';
        echo '</tr>'."\n";

    while($row = mysql_fetch_array($execution_requete1)) {

       echo '<tr>';
       echo '<td bgcolor="#dddddd"><font color="black">'.$row["Nom"].'             </td></font>';
       echo '<td bgcolor="#dddddd"><font color="black">'.$row["Previsions_AM"].'  </td></font>';
       echo '<td bgcolor="#dddddd"><font color="black">'.$row["Previsions_R"].'   </td></font>';
       echo '<td bgcolor="#dddddd"><font color="black">'.$row["Previsions_PM"].'  </td></font>';
       echo '<td bgcolor="#dddddd"><input name="matin" type="checkbox" value ="1"></td>';
       echo '<td bgcolor="#dddddd"><input name="midi " type="checkbox" value ="1"></td>';
       echo '<td bgcolor="#dddddd"><input name="apresmidi " type="checkbox" value ="1"></td>';
      

       echo '</tr>'."\n";
    }
    echo '</table>'."\n";
   // fin du tableau.<code><code>
}
else echo "Aucune inscription  ";

//*on libère le résultat*//
mysql_free_result($execution_requete1);


        ?>



<form name="form" method="post" action="Traitement_validation_presence.php">

<br><br>
<input type="submit" value="Valider"  name="Valider">


</form>


Page où on récupere les données des checkbox pour les inserer dans la base de donnée


Code PHP :
<?php
// On  récupére les champs :

if(isset($_POST['matin']))      $matin=$_POST['matin'];
else      $matin="";

if(isset($_POST['midi']))      $midi=$_POST['midi'];
else      $midi="";

if(isset($_POST['apresmidi']))      $apresmidi=$_POST['apresmidi'];
else      $apresmidi="";


    {
       // connexion à la base
$db = mysql_connect('localhost','root','mysql')  or die('Erreur de connexion '.mysql_error());

      // sélection de la base
    mysql_select_db('Centre_aere',$db)  or die('Erreur de selection '.mysql_error());      

     // on écrit la requête sql
 // $sql1 = "UPDATE Inscription_mercredi SET Realisations_AM = '$matin',Realisations_R = '$midi',Realisations_PM = '$apresmidi' ";
$sql1 = "INSERT INTO Inscription_mercredi(Realisations_AM,Realisations_R,Realisations_PM) VALUES('$matin','$midi','$apresmidi')";


   // on insère les informations du formulaire dans la table
    mysql_query($sql1) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

     // on affiche le résultat 
    echo 'Les informations ont bien été ajoutées. <br/> <br/>';
    echo '<a href="index.php"> Retour à l\'accueil</a>';

    mysql_close();  // on ferme la connexion
    }

?>
jeudi 9 juin 2011 à 15:15:05 | Re : Problème php/mysql et checkbox

cod57

bonjour

il faut mettre des 'brackets' []
comme ça tu auras des checkbox indicé dans un tableau

echo '<td bgcolor="#dddddd"><input name="matin[]" type="checkbox" value ="1"></td>'; ...

mais je comprend pas ton premier form il y a pas de submit
y a t'il pas un probleme déjà ici

veux tu faire

Code PHP :

<form name="form" method="post" action="Traitement_validation_presence.php">
<!--
<form name="form1" method="post" action="">
-->
<select name="liste1" onchange=" form1.submit();">
<option value=-1>-- Choisissez -- </option>
<br> <br>
<?php

$connection = mysql_connect('localhost', 'root', 'mysql');
$base = mysql_select_db('Centre_aere');

$requete = "SELECT Date FROM Date_mercredi Order by Id";
$execution_requete = mysql_query($requete);
while($total = mysql_fetch_array($execution_requete))

//Liste déroulante
{
echo "<option value=\"".$total["Date"]."\"";
if($liste1==$total['Date']) { echo "selected"; }//ça c'est pour garder la selection lors du réaffichage
echo ">".$total['Date']."</option>\n";

}

?>
</select>


<br />
<!--
</form>
-->
<?php
$requete1 = "SELECT Nom,Previsions_AM,Previsions_R,Previsions_PM FROM Inscription_mercredi WHERE Date='".$liste1."'";
$execution_requete1 = mysql_query($requete1);
$tot = mysql_num_rows($execution_requete1);
 // accolade de fin de if liste postee

// si on a récupéré un résultat on l'affiche.
if($tot) {
    // debut du tableau
    echo '<p align="center"><table bgcolor="#FFFFFF" border="4" cellpadding="4" cellspacing="2"></p>'."\n";
        
        echo '<tr>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Nom</u></b></font></td>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Previsions_Matin</u></b></font></td>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Previsions_Midi</u></b></font></td>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Previsions_Après-midi</u></b></font></td>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Realisations_Matin</u></b></font></td>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Realisations_Midi</u></b></font></td>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Realisations_Après-midi</u></b></font></td>';
        echo '</tr>'."\n";

    while($row = mysql_fetch_array($execution_requete1)) {

       echo '<tr>';
       echo '<td bgcolor="#dddddd"><font color="black">'.$row["Nom"].'             </td></font>';
       echo '<td bgcolor="#dddddd"><font color="black">'.$row["Previsions_AM"].'  </td></font>';
       echo '<td bgcolor="#dddddd"><font color="black">'.$row["Previsions_R"].'   </td></font>';
       echo '<td bgcolor="#dddddd"><font color="black">'.$row["Previsions_PM"].'  </td></font>';
       echo '<td bgcolor="#dddddd"><input name="matin" type="checkbox" value ="1"></td>';
       echo '<td bgcolor="#dddddd"><input name="midi " type="checkbox" value ="1"></td>';
       echo '<td bgcolor="#dddddd"><input name="apresmidi " type="checkbox" value ="1"></td>';
      

       echo '</tr>'."\n";
    }
    echo '</table>'."\n";
   // fin du tableau.<code><code>
}
else echo "Aucune inscription  ";

//*on libère le résultat*//
mysql_free_result($execution_requete1);


        ?>


<!--
<form name="form" method="post" action="Traitement_validation_presence.php">
-->
<br><br>
<input type="submit" value="Valider"  name="Valider">


</form>



Bonne programmation !
vendredi 10 juin 2011 à 14:51:35 | Re : Problème php/mysql et checkbox

mary62

Bonjour cod57, merci de ta réponse.
Le problème , c'est que si je fais comme tu me dis avec les form, et bien mon onchange ne fonctionne plus donc je ne peux plus afficher les enfants inscrits selon la date que j'ai selectionné dans ma liste déroulante.
Et donc je n'ai pas pu essayer ta solution concernant les brackets.
A tu une solution pour ce problème ?
vendredi 10 juin 2011 à 20:54:41 | Re : Problème php/mysql et checkbox

mary62

C'est bon j'ai resolu mon problème.
mardi 14 juin 2011 à 15:33:04 | Re : Problème php/mysql et checkbox

mary62

Je me suis rendu compte que tout fonctionne sauf que je ne peux cocher qu'une fois chaque réalisations pour toute ma liste d'enfants,c'est à dire que si je coche réalisation matin chez 10 enfants , il y en aura qu'un qui sera pris en compte donc ça ne peut pas fonctionner si 10 enfants ne peuvent pas être present le même matin.
Je pense que ça ne doit pas être grand chose mais si quelqu'un pouvait m'éclairer.
Merci

Je remet mon code :

Page avec les cases à cocher :

Code PHP :
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link href="style.css" rel="stylesheet" type="text/css" />
  </head>
  <body>
      


<?php
        include("menu.inc");
        echo'<div class="borduretitre">';
        ?>
<?php
if(isset($_POST['liste1'])){
	//si la liste a été "postée" c'est à dire choix fait
	$liste1=$_POST['liste1'];
}else{
	$liste1=-1;
}
?>

Sélectionnez un mercredi :
<form name="form1" method="post" action="">
<select name="liste1" onchange=" form1.submit();">
<option value=-1>-- Choisissez -- </option>
<br> <br>
<?php

$connection = mysql_connect('localhost', 'root', 'mysql');
$base = mysql_select_db('Centre_aere');

$requete = "SELECT Date FROM Date_mercredi Order by Id";
$execution_requete = mysql_query($requete);
while($total = mysql_fetch_array($execution_requete))

//Liste déroulante
{
echo "<option value=\"".$total["Date"]."\"";
if($liste1==$total['Date']) { echo "selected"; }//ça c'est pour garder la selection lors du réaffichage
echo ">".$total['Date']."</option>\n";

}

?>
</select>


<br/>
</form>
<form name="form" method="post" action="Traitement_validation_presence.php">
<?php
$requete1 = "SELECT Id,Nom,Previsions_AM,Previsions_R,Previsions_PM FROM Inscription_mercredi WHERE Date='".$liste1."'";
$execution_requete1 = mysql_query($requete1);
$tot = mysql_num_rows($execution_requete1);
 // accolade de fin de if liste postee

// si on a récupéré un résultat on l'affiche.
if($tot) {
    // debut du tableau
    echo '<p align="center"><table bgcolor="#FFFFFF" border="4" cellpadding="4" cellspacing="2"></p>'."\n";
        // première ligne on affiche les titres prénom et surnom dans 2 colonnes
        echo '<tr>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Nom</u></b></font></td>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Previsions_Matin</u></b></font></td>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Previsions_Midi</u></b></font></td>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Previsions_Après-midi</u></b></font></td>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Realisations_Matin</u></b></font></td>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Realisations_Midi</u></b></font></td>';
        echo '<td bgcolor="#006498"><font color="white"><b><u>Realisations_Après-midi</u></b></font></td>';
        echo '</tr>'."\n";

    while($row = mysql_fetch_array($execution_requete1)) {

       echo '<tr>';
       echo '<td bgcolor="#dddddd"><font color="black">'.$row["Nom"].'             </td></font>';
       echo '<td bgcolor="#dddddd"><font color="black">'.$row["Previsions_AM"].'  </td></font>';
       echo '<td bgcolor="#dddddd"><font color="black">'.$row["Previsions_R"].'   </td></font>';
       echo '<td bgcolor="#dddddd"><font color="black">'.$row["Previsions_PM"].'  </td></font>';
       echo '<td bgcolor="#dddddd"><input name="matin[]" type="checkbox" value ="'.$row['Id'].'"></td>';
       echo '<td bgcolor="#dddddd"><input name="midi[] " type="checkbox" value ="'.$row['Id'].'"></td>';
       echo '<td bgcolor="#dddddd"><input name="apresmidi[] " type="checkbox" value ="'.$row['Id'].'"></td>';
       echo '</tr>'."\n";
    }
    echo '</table>'."\n";
   // fin du tableau.
}
else echo "Aucune inscription  ";

//*on libère le résultat*//
mysql_free_result($execution_requete1);


        ?>





<br><br>
<input type="submit" value="Valider"  name="Valider">


</form>



Page où on récupere les données des checkbox pour les inserer dans la base de donnée :

Code PHP :

<?php
for($i=0;$i<count($_POST['matin']);$i++)
{
$id=$_POST['matin'][$i];
/* requête avec UPDATE matable SET champ='valeur' WHERE id=$id */
}

for($i=0;$i<count($_POST['midi']);$i++)
{
$id1=$_POST['midi'][$i];
/* requête avec UPDATE matable SET champ='valeur' WHERE id=$id */
}

for($i=0;$i<count($_POST['apresmidi']);$i++)
{
$id2=$_POST['apresmidi'][$i];
/* requête avec UPDATE matable SET champ='valeur' WHERE id=$id */
}
    {
       // connexion à la base
    $db = mysql_connect('localhost','root','mysql')  or die('Erreur de connexion '.mysql_error());

      // sélection de la base
    mysql_select_db('Centre_aere',$db)  or die('Erreur de selection '.mysql_error());  
  
    // on écrit la requête sql
 // $sql1 = "UPDATE Inscription_mercredi SET Realisations_AM = '$matin',Realisations_R = '$midi',Realisations_PM = '$apresmidi' ";
    $sql  = "UPDATE Inscription_mercredi SET Realisations_AM ='1' WHERE Id=$id" ;
    $sql1 = "UPDATE Inscription_mercredi SET Realisations_R  ='1' WHERE Id=$id1" ;
    $sql2 = "UPDATE Inscription_mercredi SET Realisations_PM ='1' WHERE Id=$id2" ;
    
   // on insère les informations du formulaire dans la table
    mysql_query($sql)  or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    mysql_query($sql1) or die('Erreur SQL !'.$sql1.'<br>'.mysql_error());
    mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
    }
     // on affiche le résultat pour le visiteur
    echo 'Les informations ont bien ete ajoutees. <br/> <br/>';
    echo '<a href="index.php"> Retour a l\'accueil</a>';

    mysql_close();  // on ferme la connexion
    

?>



Cette discussion est classée dans : code, mysql, midi, echo, previsions


Répondre à ce message

Sujets en rapport avec ce message

probleme avec un tableaux (ou est l'erreur??) [ par h2h ] salut tout le monde, jai un probleme avec ce tableaux.. en fait ce tableaux affiche bien ce ke je veu mai le prob cest kil décale tout d'une ligne ce indentification et connexion grâce à un formulaire [ par auremy ] Bonjour,J'ai crée un formulaire html qui permet à l'utilisateur de saisir son login et son mot de passe. La validation envoye ses informations à une p Warning: 0 is not a MySQL result index [ par Tatouine ] Bonjour, j'ai un probleme avec un de mes scripts ... don le code est : $per = array ("printemps", "ete", "hiver"); $i=0; while($i { echo "&l Besoin d'aide pr afficher dernière valeur d'1 enregistrement [ par chardene_amour_de_freddy ] Bonjour à tous ! J'explique mon pb, je souhaiterais récupérer la valeur du dernier enregistrement d'une requete. En fait j'ai un formulaire dans leque changement dynamique liste déroulante [ par gasougasou ] Bonjour, j'ai créé 1 base de données sur MYSQL comportant les 2 tables suivantes :   code  &n liste deroulante dynamique [ par gasougasou ] Bonjour, j'ai créé 1 base de données sur MYSQL comportant les 2 tables suivantes :   code  < pb de passage de paramètres [ par sandro38000 ] Bonjour à tous et a toutes,je débute à programmer en php et j'ai rencontrer un problème lors du passage de paramètre d'une page à une autre.Je m'expli Es ce que mon code est propre [ par sense ] Je code un formulaire pour faire un trie dans ma requete, mais ce que j'ai fais fonctionne mais je pense que j'en fais trop :/ quelqu'un peu me consei Besoin d'aide urgent [ par Masterchiefer ] Bonjour, alors j'aurais une petite question.Je suis en BTS informatique de gestion spécialité développeur et dans le cadre de mon stage je dois réalis liste deroulante en fonction d'une autre [ par lil_adriano ] Slt, j'ai un ti soucis c'est a dire je voudrais afficher une liste deroulante en fonction d'une autre par ex la categorie qui va donner des theme sur


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales