Les Allergies
Alimentaires
Posez votre question Signaler

PHP/mysql enregistrer données tableau HTML [Résolu]

oumouri - Dernière réponse le 8 juil. 2010 à 18:24
slt, voilà j'ai 2 tble etudiant et absence.jé fé une req sql select* from pour selectioner les etudiant par classe pour voir ts les etudiants et je regenere un checkbox pour chq etudiant.
apres mysql_fetch_array j'affiche ts les etudiants ds un tblo html dont la derniere colonne por chq etudiant il y'a son checkbox.maintenant je voudrait le code qui me permet que lorsque je coche le checkbox php puisse reconnaitre tte la ligne du tablo afin que je puisse enregistrer tte la ligne (nom, prenom,adresse) ds le cas où l'etudiant est absent.j'ai essayer mais on dirait que le checkbox n'est pas associer aux autres cellule du tablo. Merci de me repondre c'est mon projet de fin d'etude "gestion des assiduité d'une ecole".Je vous suis tres reconnaissant au delà des mots
Lire la suite 

PHP/mysql enregistrer données tableau HTML »

Suggestions
24 réponses
Réponse
+4
moins plus
Merci bcp Monsieur KILIAN, je vous en suis tres reconnaissant.

voici mon code:

C’est le formulaire que je selectionne la classe ainsi il m’affiche tt les etudiants(nom,prenom,numcarte)et regenere le checkbox .
********************************************************************
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.Style1 {
font-size: 18px;
font-weight: bold;
}
body {
background-color: #669966;
}
.Style2 {color: #FFFFFF}
-->
</style>
</head>

<body>
<form action="classeaff.php" method="post" name="form" id="form">
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<table width="404" border="1" align="center" cellpadding="8" bordercolor="#663366">
<tr>
<td width="186"> </td>
<td width="174"> </td>
</tr>
<tr>
<td><div align="center" class="Style2"><span class="Style1">Choisissez la classe </span></div></td>
<td><div align="center">
<select name="select">
<option value="gi1">Gi1</option>
<option value="gi2">Gi2</option>
<option value="gi3">Gi3</option>
<option value="gi4">Gi4</option>
</select>
</div></td>
</tr>
<tr>
<td>
<div align="center">
<input name="cmd_val" type="submit" id="cmd_val" value="Valider">
</div></td>
<td><div align="center">
<input type="reset" name="Submit2" value="Annuler">
</div></td>
</tr>
</table>
</form>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
</body>
</html>

C’est le form qui affiche les resultat de la precedente
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<?php
//include("../modeles/entete.php");
//Connexion à MySQL
include "open.php";
if ($_POST['cmd_val']){
$menselect = $_POST['select'];
}
//Requete pour afficher les utilisateurs enrégistrer dans la base de données
$rq="select num_carte_etud, nom, prenom, filiere from etudiant where filiere='$menselect'
order by num_carte_etud ";
//fardi $rq="select num_Abs, date_Abs, h_debut, h_fin, nb_abs, num_carte_etud, filiere from absence where filiere='$menselect'
//fardi order by num_Abs ";
//Envoie de la requete au serveur MySQL
$resultat=mysql_query($rq) or die("Une erreur systeme s'est glissée: ".mysql_error());
//if ($resultat=true) { echo "Bien"; } else { echo "Soucis au niveau du serveur"; }
//Derouler la boucle while pour afficher les résultats de la requête
$nb=mysql_num_rows($resultat);
//if ($resultat) 1ere methode ou
if ($nb>0)
echo "<h2 align='center'><font color=blue>Actuellement vous vous êtes absentéz pendant $nb jours(s) </font></h2>";
{ echo "<table align='center' border=1 width=100%>
<tr>
<th align='center'><font color=black> Carte scolaire</th><th align='center'><font color=black>Nom</font></th>
<th align='center'><font color=black> Prénom</th><th align='center'><font color=black>Filiére</font></th>
</tr>"; { ?>
<form name="form1" method="post" action="classetrait.php">
<? }
while($lignes=mysql_fetch_array($resultat,MYSQL_NUM)) // ou bien: while ($lignes=mysql_fetch_rows($resultat))
{
echo "<tr><td>$lignes[0]</td> <td>$lignes[1]</td> <td>$lignes[2]</td> <td>$lignes[3]</td> <td><input type='checkbox' name='checkbox' value='$lignes[0]'></td></tr>";
}

echo "</table>";
//2eme partie
//if (isset('checkbox'))
?>
<table width="518" border="1" align="center" cellpadding="8">
<tr>
<td width="299"><input name="imageField2" type="image" src="maison.gif" align="middle" width="103" height="60" border="0"></td>
<td width="175"><input name="imageField" type="image" src="telesurveillance_ecran.jpg" align="right" width="170" height="133" border="0"></td>
</tr>
<tr>
<td><span class="Style1">Date de l'abscence : </span></td>
<td><input name="t_date" type="text" id="t_date" value="<? echo 'Le ' . date ('d - m - Y'); ?>"></td>
</tr>
<tr>
<td><span class="Style1">Heure début :</span></td>
<td><input name="hr_debut" type="text" id="hr_debut"></td>
</tr>
<tr>
<td><span class="Style1">Heure fin : </span></td>
<td><input name="hr_fin" type="text" id="hr_fin"></td>
</tr>
<tr>
<td>
<div align="left"><span class="Style1">Numero de la carte scolaire : </span> </div></td>
<td>
<div align="left"> </div></td>
</tr>
<tr>
<td>
<div align="center">
<input name="cmd_enreg" type="submit" id="cmd_enreg" value="Enregistrer">
</div></td>
<td><div align="center">
<input name="t_numcarte" type="text" value=007 >
<input type="reset" name="Submit" value="Annulerr">
</div></td>
</tr>
</table>
</form>
<?


//echo "</form>";

mysql_free_result($resultat);
//mysql_close($cnx);
}
echo"<p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p>";
echo"<p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p>";
echo"<p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p>";

?>
<p align="center" class="Style1"><a href="index.htm">Retoure à l'accueil </a></p>
</body>
</html>

</body>
</html>
------------------------------------------------------------------------------
Et enfin c’est le form de traitement

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?
//include "head.php";
include "open.php";
//if ($_POST['cmd_rech']=='Rechercher')
// { #1

//if (isset($_POST['checkbox'])){

$v0 = $_POST['t_date'];
$v1 = $_POST['hr_debut'];
$v2 = $_POST['hr_fin'];
$v3 = $v2-$v1;
$v4 = $_POST['checkbox'];
$v5 = $_POST['t_numcarte'];
while(isset($_POST['checkbox'])){
$req = "INSERT INTO `absence`VALUES ('','$v0','$v1','$v2','$v3','$v4','$v5')";
$res = mysql_query($req) or die ("Transfert non efféctuer");
//include "paiement.php";
}

?>


</body>
</html>

------------------BDD--------------------
-- Structure de la table `etudiant`
--

CREATE TABLE `etudiant` (
`num_carte_etud` varchar(255) default NULL,
`nom` varchar(255) default NULL,
`prenom` varchar(255) default NULL,
`date_naiss` varchar(255) default NULL,
`sex` varchar(60) default NULL,
`adresse` varchar(255) default NULL,
`tel` int(12) default NULL,
`mail` varchar(255) default NULL,
`filiere` varchar(255) default NULL,
`code_tuteur` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Contenu de la table `etudiant`
--

INSERT INTO `etudiant` VALUES ('001', 'moufouti', 'ali', '12', 'Masculin', 'moscou', 65647896, 'moscou^hotmail.com', 'gi1', '22236');
INSERT INTO `etudiant` VALUES ('011', 'aa', 'bb', ' 12-02-1896', 'Masculin', 'qertret', 1444444444, 'mal@yahoo.fr', 'gi1', 'noeop@yahoo.fr');
INSERT INTO `etudiant` VALUES ('012', 'lll', 'mmmm', '12-04-18957', '', 'ttttttttttttttttt', 2147483647, 'maot@yahoo.fr', 'gi1', 'mppro@yahoo.fr');
INSERT INTO `etudiant` VALUES ('012', 'lll', 'mmmm', '12-04-18957', 'Feminin', 'ttttttttttttttttt', 2147483647, 'maot@yahoo.fr', 'gi1', 'mppro@yahoo.fr');
INSERT INTO `etudiant` VALUES ('013', ' poi', 'poi', '17-08-1996', 'Masculin', 'ggggggggggg', 1457896, 'lkflsdr@hotmail.com', 'gi1', 'hot@heoit.fr');
INSERT INTO `etudiant` VALUES ('014', 'kassavoubou', 'presid', '12-03-1897', 'Feminin', 'ddddd', 123857, 'maoh^hotmcom', 'gi1', 'mjdf@yahoofr');

-- --------------------------------------------------------
Ajouter un commentaire
Réponse
+1
moins plus
Monsieur KILIAN, honneur à vous j'ai bien resolu le probleme .tt marche à merveille.
Que Dieu soit avec vous.Je vous remercies infiniment.

Oumouri
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

Comment tu disposes chaque ligne du tableau?
Tu crées un nouveau <form> à chaque fois?

Tu pourrais mettre ic la source html d'une ligne de ton tableau et la manière dont tu le récupères en php?
Et tu as quoi comme erreur?

Et si tu pouvais éviter le langage sms, la programmation donne déjà assez mal à la tête.... :-)
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

Tu pourrais réexpliquer ton problème?
Je ne suis pas sûr d'avoir compris.... :-\
oumouri- 28 juin 2005 à 13:52
Merci infiniment, tout ce que vous venez de me dire c'est exactement ce qui se passe.Dés que je coche plusieurs checkbox il prens en charge juste le dernier comme vous venez de le dire.Alors que je dois enregestrer tt les checkbox avec comme valeur le num_de la carte_scolaire comme ça lorsqu'un parent voudra consulter les absences de son fils je ferais la requete à base de ce champ.J'ai beau essayer +ieurs methode en exemple le "while" comme vous l'avez remarqué.Votre remarque tiens exaactement ce que j'ai eu il fait une seulle enregistrement +ieurs fois jusqu'à ce easyphp se plante.

Je suis à bout je ne sais pas comment gerer ses checkbox et je ne sais pas comment leurs attribuer automatiquement diferent nom.
J'espere ou je souhaite de tt mon coeur que tu m'en vienne en aide.
Je vous remercie infiniment.
kiliankilian - 28 juin 2005 à 14:56
Salut Oumouri,

Je te réponds ce soir.....
kiliankilian - 28 juin 2005 à 20:10
Alors si tu veux générer un nom de checkbox nouveau pour chaque checkbox:
D'abord tu prends un nom de base, on va dire "etudiant".
Puis tu utilises une variable compteur pour avoir comme noms de checkbox:
etudiant0
etudiant1
etudiant2 etc....

Ca nous donne ça dans la page classeaff.php:
$nb_etudiant=0;
while($lignes=mysql_fetch_array($resultat,MYSQL_NUM)) // ou bien: while ($lignes=mysql_fetch_rows($resultat))
{
	echo "<tr><td>$lignes[0]</td> <td>$lignes[1]</td> <td>$lignes[2]</td> <td>$lignes[3]</td> <td><input type='checkbox' name='etudiant$nb_etudiant' value='$lignes[0]'></td></tr>";
	$nb_etudiant++;
}

Sachant que $nb_etudiant est le compteur.

Ensuite, il faut que tu transmette le nombre d'etudiants sur cette page à la page classetrait.php (tu verras pourquoi après).
Donc tu utilises un champs caché avec notre compteur juste avant qui indique bien le nombre d'étudiants sur cette page.
Ou plus exactement notre compteur -1, puisqu'il s'incrémente une dernière fois inutilement dans la boucle d'avant.
Donc à la suite de la boucle:
echo "<input type='hidden' name='nb_etudiant' value='$nb_etudiant'>";


Maintenant on passe à la page classetrait.php:

On a plus besoin de $v4, puisqu' on utilise des champs $_POST différents pour chaque checkbox.
Par contre on prend une nouvelle variable avec le nombre d'étudiant du champs caché d'avant:
Donc avant la boucle ou se trouve la requête, ça nous donne:
$v0 = $_POST['t_date'];
$v1 = $_POST['hr_debut'];
$v2 = $_POST['hr_fin'];
$v3 = $v2-$v1;
$v5 = $_POST['t_numcarte'];
$nb_etudiant=$_POST['nb_etudiant'];

Et ensuite la boucle de la requête.
Là on va parcourir la valeur de toutes les checkbox. Si une checkbox a été cochée, on fait la requête, sinon on ne fait rien.
On fait ça jusqu'à ce qu'on dépasse le nombre d'étudiants dans la page d'avant, donc le nombre de checkbox:
for($i=0;$i<$nb_etudiant;$i++) /*Rappel: Nombre 
d'étudiants dans la page d'avant = $nb_etudiant-1 */
{
	if (isset($_POST["etudiant$i"]))
	{
		$v4=$_POST["etudiant$i"];
		$req = "INSERT INTO `absence`VALUES ('','$v0','$v1','$v2','$v3','$v4','$v5')";
		$res = mysql_query($req) or die ("Transfert non effectué");
		echo $req;
	}
	echo $i."<br>";
//include "paiement.php";
}


Et voilà.
Ajouter un commentaire
Réponse
+0
moins plus
Monsieur KILIAN,
si seulement je pouvais vous dire combien j'en suis trés reconnaissant. J'ai pris bcp de retard pour vous repondre car je n'ai plus l'intenet à la maison je doi venir au cyber tout les jours alors que tout les jours on a pas les moyens.Eh oui c'est l'afrique.Je file tout de suite à la maison en emenant le code pour essayer de le marier avec le mien.Je vous fais signe demain.

Monsieur KILIAN, si seulement vous saviez combien je suis content.

Mmmmmmmmmmmmmmmmmerci ..... à demain
kilian- 30 juin 2005 à 13:43
:-)

Par contre j'ai laissé deux trois trucs inutiles dans le code, comme l'affichage de la requête par exemple.
C'était pour debugger...

Et je crois que tu t'es gourré dans la section. Tu laisse 007 par défaut alors que la section si j'ai bien compris c'est plutôt gi1 ou gi2 etc...

Voilà,voilà, j'espère que ça marchera....
oumouri- 30 juin 2005 à 13:57
Merci, comme je suis debutant je crois que le mieux c'est de bien etudier le code que vous m'avez envoyer puis l'integrer, au lieu d'essayer de jouer aux Enstein.
Merci bien
Ajouter un commentaire
Réponse
+0
moins plus
Ben de rien....

Bonne chance pour la suite :-)
Ajouter un commentaire
Réponse
+0
moins plus
autre post^^
kilian - 9 avril 2009 à 17:16
lol
Ajouter un commentaire
Réponse
-2
moins plus
Salut kilian, j'ai bien vu que tu t'y connaissai très bien à la programmation, enfin au site web en général, et j'aurai quelques questions, en faite on m'a demandé de créer un site internet immoblier, et j'aurai voulu savoir de une: est-ce que c'est possible d'intégrer une image et délimiter que si je passe la souris sur tel ou tel ville de la carte que je puisse la sélection, donc que le nom qui est affiché sur la carte puisse etre comme une sorte de checkbox, vu que j'aimerais pouvoir sélection plusieur ville??
2ième question: j'arrive à insérer des "enregistrés" par une formulaire, donc ils sont sur la base, après leurs inscription, quand ils mettent leur login et mot de passe j'aimerais qu'ils puissent voir leur données d'utilisateur et que depuis cette page qui n'est pas visible si la personne n'est pas inscrite, qu'il puisse insérer des annonces (donc un truc que c'est que lui qui puisse accéder à ses annonce), j'aimerais savoir comment lier l'utilisateur avec les annonces qu'il insère? que chaque utilisateur puisse géré ses annonces..

Merci de vos réponse d'avance.
Ajouter un commentaire
Réponse
-3
moins plus
Bonjours,* Bonsoirs pour certain* Moi je suis voudrais créer un site d'inscription en html qui transfère les donnée a des table mysql soit avec navicat. Je ne trouve pas comment faire cela donc j'aurais besoin de votre aide je vous laisse mon émail alex-hockey-pro@hotmail.com * Ps.... j'ai déjà mon site web et mes ligne pour écrire il me manque seulement le transfert de donnée vers des table dans mon navicat * Merci

Waracior
Ajouter un commentaire
Ce document intitulé « PHP/mysql enregistrer données tableau HTML » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?