Enregistrer valeur tableau html dans table mysql [Résolu]

Messages postés
1
Date d'inscription
jeudi 4 décembre 2008
Dernière intervention
24 septembre 2009
- 24 sept. 2009 à 11:44 - Dernière réponse :
Messages postés
345
Date d'inscription
mardi 1 juin 2004
Dernière intervention
17 octobre 2014
- 24 sept. 2009 à 14:59
Bonjour,

Cela fait longtemps que je m'aide de ce forum lors du développement de mes petits sites ou applications personnel.
Mais la je tombe sur os, car je n'arrive pas a enregistrer toute les données qui sont saisies dans mon tableau HTML pourtant elles s'affichent toutes bien. Seul la dernière ligne s'enregistre alors que je voudrais la totalité.

Si vous avez une petite idée je vous laisse mon code et ma table.

Merci d'avance.

Clem

<?php
connect_sql();

$sql = "SELECT * FROM question ORDER BY id_question";

$requete = mysql_query($sql) or die( "ERREUR MYSQL numéro: ".mysql_errno()."
Type de cette erreur: ".mysql_error()."
" );
if(isset($_POST['valide']))	{
$valide = $_POST['valide'];
}
else {
$valide = 0;
}
if($valide == 1){
echo "lol";
$id_question = mysql_real_escape_string($_POST["id_question"]);

$question = mysql_real_escape_string($_POST['question']);

$reponse_prof = mysql_real_escape_string($_POST['reponse_prof']);

$reponse_eleve = mysql_real_escape_string($_POST['reponse_eleve']);

$query_update = "UPDATE question SET texte_question='".$question."', reponse_prof='".$reponse_prof."' WHERE id_question = '".$id_question."'";
$req_update = mysql_query($query_update);			
header("Location: index.php?id_menu=1");
if(!$req_update)
die("Error saving the record!  Mysql said: '".mysql_error()."'"); 
}



?>
<form method="post" action="index.php?id_menu=1">
<?php
while( $result = mysql_fetch_array($requete) )
{
$id_question = $result[\"id_question\"];
$texte_question = $result[\"texte_question\"];
$reponse_prof = $result[\"reponse_prof\"];
$reponse_eleve = $result[\"reponse_eleve\"];
?>

----

" readonly />,
" />,
" />,
" readonly />,

<?php
}
?>

        


</form>


Table Mysql :

--
-- Base de données: `clement`
--

-- --------------------------------------------------------

--
-- Structure de la table `question`
--

CREATE TABLE IF NOT EXISTS `question` (
  `id_question` int(10) unsigned NOT NULL,
  `texte_question` longtext NOT NULL,
  `reponse_prof` longtext NOT NULL,
  `reponse_eleve` longtext NOT NULL,
  PRIMARY KEY (`id_question`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Contenu de la table `question`
--

INSERT INTO `question` (`id_question`, `texte_question`, `reponse_prof`, `reponse_eleve`) VALUES
(1, 'Question 1', 'LOL', 'LOOL'),
(2, 'Question 22', 'LULd', 'LOULd'),
(3, 'Question 3', 'LIL', 'LIIL'),
(4, 'Question 4', 'LAL', 'LAAL'),
(5, 'Salutrrfgffffjjjffffvv', 'Drewdd', 'LEL');
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
345
Date d'inscription
mardi 1 juin 2004
Dernière intervention
17 octobre 2014
- 24 sept. 2009 à 14:59
3
Merci
A chaque changement de ligne tu perds les valeurs antérieures car tu réutilises les mêmes noms de variables :
- après la ligne 1, id_question = 1;
- aprés la ligne 2, id_question = 2;
etc...
à la fin , tu n'as que la dernière rangée.
si tu veux mettre à jour l'ensemble, il faut un tableau de taille fixe et créer un jeu de variables par rangée:
- id_question1, question1, ...
- id_question2, question2, ...
...
- id_questionN, questionN, ...

Gére un compteur $r incrémenté à chaque <tr>
<td> " size="1" value= "<?php echo $id_question ?>" readonly /> </td>

et quand tu mets à jour, tu fais N updates, 1 pour chaque jeu de valeurs.

Il est plus efficace de présenter son tableau en fixe avec un bouton "modifier" par rangée : tu n'auras qu'un update à la fois et tu ne t'occuperas plus du nombre de rangées.

thip

Merci tpoinsot 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de tpoinsot

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.