Accueil > Forum > > > > Problème php/mysql et checkbox
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
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|