Je n'arrive pas à mettre à jour ma table MYSQ
Fermé
beegees
Messages postés
83
Date d'inscription
samedi 30 décembre 2006
Statut
Membre
Dernière intervention
1 janvier 2018
-
15 oct. 2008 à 20:34
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 26 oct. 2008 à 21:22
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 26 oct. 2008 à 21:22
A voir également:
- Je n'arrive pas à mettre à jour ma table MYSQ
- Table ascii - Guide
- Mettre a jour chrome - Accueil - Applications & Logiciels
- Mettre à jour ses pilotes - Guide
- Table des matières word - Guide
- Mise a jour windows 10 - Accueil - Mise à jour
4 réponses
$txtSQL = "update [etudiants] set [Nom_Et] = '".$Nom ."' where [Matricule_Et] = '".$Matricule."'" ;
déjà pourquoi tu as des [ ] au niveau des tes noms de table ?
ensuite je vois pas de :
mysql_query($txtSQL);donc il me semble que t'envoie pas la commande a mysql ;)
après je suis pas non plus un spécialiste :)
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
15 oct. 2008 à 20:55
15 oct. 2008 à 20:55
Bonsoir,
à la place de $_REQUEST mets $_POST
et $txtSQL = "update [etudiants] set [Nom_Et] = '".$Nom ."' where [Matricule_Et] = '".$Matricule."'" ;
mysql_query($txtSQL);
car il faut qd même à un moment lancer la requette
à la place de $_REQUEST mets $_POST
et $txtSQL = "update [etudiants] set [Nom_Et] = '".$Nom ."' where [Matricule_Et] = '".$Matricule."'" ;
$txtSQL = "UPDATE etudiants SET Nom_Et = '".$Nom ."' WHERE Matricule_Et = '".$Matricule."'" ;
mysql_query($txtSQL);
car il faut qd même à un moment lancer la requette
beegees
Messages postés
83
Date d'inscription
samedi 30 décembre 2006
Statut
Membre
Dernière intervention
1 janvier 2018
7
19 oct. 2008 à 13:35
19 oct. 2008 à 13:35
Bonjour Alain,
Merci pour ta réponse et désolé pour le retard de ma réaction mais j'étais occupé sur autre chose.
Malheureusement, ça ne fonctionne pas encore.
Voici le code de mon premier fichier :
[code]echo '<table border="1">';
$table = $_POST['select_Nom_Tables'];
$query = mysql_query("SELECT * FROM $table LIMIT 20");
echo '<form action="MettreAJour.php?NbLignes='.mysql_num_rows($query).'" method="post" name="frmSaisie" id="frmSaisie">';
echo '<tr>';
for($i=0;$i<mysql_num_fields($query);$i++)
{
echo '<th>'.mysql_field_name($query,$i).'</th>';
}
echo '</tr>';
while($row = mysql_fetch_array($query,MYSQL_NUM))
{
$compteur+=1;
echo 'compteur -->'.$compteur;
echo '<tr>';
foreach($row as $value)
{
echo '<td> <textarea>'.$value.'</textarea> <input name="'.mysql_field_name.$compteur.'" type="hidden" id="txtMatricule'.$compteur.'"value=""></td>';
echo 'mysql_field_name vaut'.mysql_field_name($query,i);
#echo '<td> <textarea>'.$value.'</textarea> <input name="'.mysql_field_name.$compteur.'" type="text" id="txtMatricule"'.$compteur.'value="'.mysql_field_name.$compteur.'"></td>';
# }
}
echo '</tr>';
}
echo '<input type="submit" name="Submit" value="Mettre la table à jour" />' ;
echo '</p></form>';
echo '</table>';/code
et voici le code de mon second fichier :
[code]<?php
# script qui permet de créer des zones de texte à la volée et d'afficher le nom des champs de la table
# variable qui contient le nom de ma base de données.
$dbname = 'deliberations';
$compteur = 0;
$link = mysql_connect('localhost', 'root', 'mdp');
if(!$link)
{
echo 'Impossible de se connecter à MySQL';
exit;
}
// Rendre la base de données deliberation, la base courante
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected)
{
die ('Impossible de sélectionner la base de données : ' . mysql_error());
}
$NbLignes = $_GET["NbLignes"];
echo '&NbLignes vaut '.$NbLignes;
for ($i = 0; $i < $NbLignes;$i++)
{
$Matricule = $_POST[mysql_field_name].[i];
$Nom = $_POST["txtNom".i];
$Prenom = $_POST["txtPrenom".i];
$DateDeNaissance = $_POST["txtDateDeNaissance".i];
$Email = $_POST["txtEmail".i];
$Photo = $_POST["txtPhoto".i];
$txtSQL = "" ;
$txtSQL = "UPDATE etudiants SET Nom_Et = '".$Nom ."' WHERE Matricule_Et = '".$Matricule."'" ;
mysql_query($txtSQL);
}
?>
/code
Merci d'avance pour l'aide.
beegees
Merci pour ta réponse et désolé pour le retard de ma réaction mais j'étais occupé sur autre chose.
Malheureusement, ça ne fonctionne pas encore.
Voici le code de mon premier fichier :
[code]echo '<table border="1">';
$table = $_POST['select_Nom_Tables'];
$query = mysql_query("SELECT * FROM $table LIMIT 20");
echo '<form action="MettreAJour.php?NbLignes='.mysql_num_rows($query).'" method="post" name="frmSaisie" id="frmSaisie">';
echo '<tr>';
for($i=0;$i<mysql_num_fields($query);$i++)
{
echo '<th>'.mysql_field_name($query,$i).'</th>';
}
echo '</tr>';
while($row = mysql_fetch_array($query,MYSQL_NUM))
{
$compteur+=1;
echo 'compteur -->'.$compteur;
echo '<tr>';
foreach($row as $value)
{
echo '<td> <textarea>'.$value.'</textarea> <input name="'.mysql_field_name.$compteur.'" type="hidden" id="txtMatricule'.$compteur.'"value=""></td>';
echo 'mysql_field_name vaut'.mysql_field_name($query,i);
#echo '<td> <textarea>'.$value.'</textarea> <input name="'.mysql_field_name.$compteur.'" type="text" id="txtMatricule"'.$compteur.'value="'.mysql_field_name.$compteur.'"></td>';
# }
}
echo '</tr>';
}
echo '<input type="submit" name="Submit" value="Mettre la table à jour" />' ;
echo '</p></form>';
echo '</table>';/code
et voici le code de mon second fichier :
[code]<?php
# script qui permet de créer des zones de texte à la volée et d'afficher le nom des champs de la table
# variable qui contient le nom de ma base de données.
$dbname = 'deliberations';
$compteur = 0;
$link = mysql_connect('localhost', 'root', 'mdp');
if(!$link)
{
echo 'Impossible de se connecter à MySQL';
exit;
}
// Rendre la base de données deliberation, la base courante
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected)
{
die ('Impossible de sélectionner la base de données : ' . mysql_error());
}
$NbLignes = $_GET["NbLignes"];
echo '&NbLignes vaut '.$NbLignes;
for ($i = 0; $i < $NbLignes;$i++)
{
$Matricule = $_POST[mysql_field_name].[i];
$Nom = $_POST["txtNom".i];
$Prenom = $_POST["txtPrenom".i];
$DateDeNaissance = $_POST["txtDateDeNaissance".i];
$Email = $_POST["txtEmail".i];
$Photo = $_POST["txtPhoto".i];
$txtSQL = "" ;
$txtSQL = "UPDATE etudiants SET Nom_Et = '".$Nom ."' WHERE Matricule_Et = '".$Matricule."'" ;
mysql_query($txtSQL);
}
?>
/code
Merci d'avance pour l'aide.
beegees
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
19 oct. 2008 à 20:51
19 oct. 2008 à 20:51
Bonsoir,
dans cette partie :
while($row = mysql_fetch_array($query,MYSQL_NUM))
{
$compteur+=1;
echo 'compteur -->'.$compteur;
echo '<tr>';
foreach($row as $value)
{
echo '<td> <textarea>'.$value.'</textarea>
<input name="'.mysql_field_name.$compteur.'" type="hidden" id="txtMatricule'.$compteur.'"value=""></td>';
je vois deux erreurs:
tu fais $compteur+=1;
et ou initialises tu la variable $compteur ?
donc avant la boucle while mets:
ensuite mysql_field_name.$compteur mets
dans cette partie :
while($row = mysql_fetch_array($query,MYSQL_NUM))
{
$compteur+=1;
echo 'compteur -->'.$compteur;
echo '<tr>';
foreach($row as $value)
{
echo '<td> <textarea>'.$value.'</textarea>
<input name="'.mysql_field_name.$compteur.'" type="hidden" id="txtMatricule'.$compteur.'"value=""></td>';
je vois deux erreurs:
tu fais $compteur+=1;
et ou initialises tu la variable $compteur ?
donc avant la boucle while mets:
$compteur=0;
ensuite mysql_field_name.$compteur mets
mysql_field_name($compteur)
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
19 oct. 2008 à 22:13
19 oct. 2008 à 22:13
Plus
erreur de principe, tu mets un textarea sans name= et dans lequel tu mets $value et tu mets un <input type =hidden avec un name mais sans valeur
ça ne peut pas poster qq chose
mets:
ensuite $Matricule = $_POST[mysql_field_name].[i];
$Nom = $_POST["txtNom".i];
$Prenom = $_POST["txtPrenom".i];
$DateDeNaissance = $_POST["txtDateDeNaissance".i];
$Email = $_POST["txtEmail".i];
$Photo = $_POST["txtPhoto".i];
et il te manque tous les $ devant i
erreur de principe, tu mets un textarea sans name= et dans lequel tu mets $value et tu mets un <input type =hidden avec un name mais sans valeur
ça ne peut pas poster qq chose
mets:
foreach($row as $value) { echo '<td> <input name="'.mysql_field_name.$compteur.'" type="text" id="txtMatricule'.$compteur.'"value="'.$value.'"></td>'; </td>'; }
ensuite $Matricule = $_POST[mysql_field_name].[i];
$Matricule = $_POST['mysql_field_name'.$i];
$Nom = $_POST["txtNom".i];
$Prenom = $_POST["txtPrenom".i];
$DateDeNaissance = $_POST["txtDateDeNaissance".i];
$Email = $_POST["txtEmail".i];
$Photo = $_POST["txtPhoto".i];
et il te manque tous les $ devant i
$Nom = $_POST["txtNom".$i]; $Prenom = $_POST["txtPrenom".i]; $DateDeNaissance = $_POST["txtDateDeNaissance".$i]; $Email = $_POST["txtEmail".$i]; $Photo = $_POST["txtPhoto".$i];
beegees
Messages postés
83
Date d'inscription
samedi 30 décembre 2006
Statut
Membre
Dernière intervention
1 janvier 2018
7
20 oct. 2008 à 07:47
20 oct. 2008 à 07:47
Bonjour Alain,
Un super GRAND merci pour ta réponse.
Pour ce qui est du compteur, je le déclarais en début de code, code que je n'avais pas copié dans ce message.
Pour ce qui est du for each :
J'ai fait ceci :
le problème avec le mysql_field_name (enfin je pense, je peux me tromper) c'est qu'il n'affiche pas le nom des champs une fois la page générée :
Voici une partie de mon code HTML lorsque la page est générée :
On peut voir qu'il y'a bien indiqué :
Ce qui est pour moi (grand débutant) un peu déroutant car je ne sais pas quel nom il a donné à mon widget.
J'ai donc utilisé ceci :
Il m'indique le nom du champ dans le code HTML :
Ce qui est déjà un peu plus partlant.
Maintenant, il faut que je récupère ces valerus, ça c'est un autre problème.
Si tu as une idée, n'hésite pas.
Encore merci pour ton aide.
beegees
Un super GRAND merci pour ta réponse.
Pour ce qui est du compteur, je le déclarais en début de code, code que je n'avais pas copié dans ce message.
Pour ce qui est du for each :
J'ai fait ceci :
foreach($row as $value) { echo '<td> <input name="'.mysql_field_name.$compteur.'" type="text" id="txtMatricule'.$compteur.'"value="'.$value.'" <input name="'.mysql_field_name.$compteur.'" type="hidden" id="'.mysql_field_name.$compteur.'" "value="'.$value.'"></td>'; }
le problème avec le mysql_field_name (enfin je pense, je peux me tromper) c'est qu'il n'affiche pas le nom des champs une fois la page générée :
Voici une partie de mon code HTML lorsque la page est générée :
<input name="mysql_field_name1" type="hidden" id="mysql_field_name1" "value="Ajourné"></td></tr><input type="submit" name="Submit" value="Mettre la table à jour" /></p></form></table>
On peut voir qu'il y'a bien indiqué :
name="mysql_field_name1"
Ce qui est pour moi (grand débutant) un peu déroutant car je ne sais pas quel nom il a donné à mon widget.
J'ai donc utilisé ceci :
foreach($row as $NomCol => $Valeur) { echo '<td> <textarea>'.$Valeur.'</textarea> <input name="'.$NomCol.$compteur.'" type="hidden" id="'.$NomCol.$compteur.'" "value="'.$Valeur.'"></td>'; }
Il m'indique le nom du champ dans le code HTML :
<input name="Code_Decision1" type="hidden" id="Code_Decision1" "value="1"></td><td> <textarea>Ajourné</textarea> <input name="Nom_Decision1" type="hidden" id="Nom_Decision1" "value="Ajourné"></td></tr><input type="submit" name="Submit" value="Mettre la table à jour" /></p></form></table>
Ce qui est déjà un peu plus partlant.
Maintenant, il faut que je récupère ces valerus, ça c'est un autre problème.
Si tu as une idée, n'hésite pas.
Encore merci pour ton aide.
beegees
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
26 oct. 2008 à 21:22
26 oct. 2008 à 21:22
Bonsoir,
effectivement ta partie de nouveau code semble mieux fonctionner pour generer ton HTML mais il y a une petite erreur
foreach($row as $NomCol => $Valeur)
{
echo '<td> <textarea>'.$Valeur.'</textarea> <input name="'.$NomCol.$compteur.'" type="hidden" id="'.$NomCol.$compteur.'" "value="'.$Valeur.'"></td>';
}
tu as une " en trop devant value
regarde bien le code HTML generé:
... id="Code_Decision1" "value="1" .....
donc il faut:
ensuite pourquoi mets tu un textarea ? en plus de l'input ?
effectivement ta partie de nouveau code semble mieux fonctionner pour generer ton HTML mais il y a une petite erreur
foreach($row as $NomCol => $Valeur)
{
echo '<td> <textarea>'.$Valeur.'</textarea> <input name="'.$NomCol.$compteur.'" type="hidden" id="'.$NomCol.$compteur.'" "value="'.$Valeur.'"></td>';
}
tu as une " en trop devant value
regarde bien le code HTML generé:
... id="Code_Decision1" "value="1" .....
donc il faut:
foreach($row as $NomCol => $Valeur) { echo '<td> <textarea>'.$Valeur.'</textarea> <input name="'.$NomCol.$compteur.'" type="hidden" id="'.$NomCol.$compteur.'" value="'.$Valeur.'"></td>'; }
ensuite pourquoi mets tu un textarea ? en plus de l'input ?