[PHP/MySQL] Acuatliser une bd via PHP
Résolu/Fermé
Graig
-
6 déc. 2008 à 09:34
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 7 déc. 2008 à 11:40
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 7 déc. 2008 à 11:40
A voir également:
- [PHP/MySQL] Acuatliser une bd via PHP
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Qu'est ce qu'une femme fait 3 fois par jour et un homme une fois dans sa vie - Forum Loisirs / Divertissements
- Get_magic_quotes_gpc php 8 ✓ - Forum PHP
- Télécharger bd pdf gratuit sans inscription - Forum PDF
5 réponses
Utilisateur anonyme
6 déc. 2008 à 11:57
6 déc. 2008 à 11:57
Bonjour,
Un peu "tarabiscoté" votre truc !
il est plus simple de faire :
1 -récupérer les modifs à faire
2 mettre à jour la table.
exemeple :
si $nom contient la nouvelle valeur et $prenom la nouvelle valeur du prénom
$id contient l'identifiant de l'éléméent à modifier;
la requête est :
$query = "update nom_de_la_table set nom='".$nom."', prenom='".$prenom."' where id='".$id."';";
Un peu "tarabiscoté" votre truc !
il est plus simple de faire :
1 -récupérer les modifs à faire
2 mettre à jour la table.
exemeple :
si $nom contient la nouvelle valeur et $prenom la nouvelle valeur du prénom
$id contient l'identifiant de l'éléméent à modifier;
la requête est :
$query = "update nom_de_la_table set nom='".$nom."', prenom='".$prenom."' where id='".$id."';";
Merci de votre réponse.
Mon problème se situe dans l'attribution d'un identifiant ($id). J'ai ajouté un champs id en index de ma bd (int en auto_increment) mais lorsque j'appelle la requete $sql = "UPDATE bd SET valeur1='$valeur1', valeur2='$valeur2' WHERE id='$id'" ca ne fonctionne pas...
Pouvez vous me donner un exemple très simple de formulaire de modification de donnée ou me dire où je pourrais en trouver un pour que je comprenne la requete qui permette d'identifier la ligne de ma bd dans laquelle je souhaite modifier des valeurs.
Voici mon code actuel :
<?PHP
$db = mysql_connect('_', '_', '_');
mysql_select_db('_',$db);
$sql = "UPDATE _ SET doc1='$doc1', doc2='$doc2' WHERE id='$id'";
mysql_query($sql)
or die('Erreur lors de la connexion à la base de donnée !'.$sql.'
'.mysql_error());
echo("<p align=\"center\">Mise à jour enregistrée</p>");
echo $sql
?>
$doc1 et $doc2 sont des valeurs saisies à l'aide de listes déroulantes dans mon tableau...
Mon problème se situe dans l'attribution d'un identifiant ($id). J'ai ajouté un champs id en index de ma bd (int en auto_increment) mais lorsque j'appelle la requete $sql = "UPDATE bd SET valeur1='$valeur1', valeur2='$valeur2' WHERE id='$id'" ca ne fonctionne pas...
Pouvez vous me donner un exemple très simple de formulaire de modification de donnée ou me dire où je pourrais en trouver un pour que je comprenne la requete qui permette d'identifier la ligne de ma bd dans laquelle je souhaite modifier des valeurs.
Voici mon code actuel :
<?PHP
$db = mysql_connect('_', '_', '_');
mysql_select_db('_',$db);
$sql = "UPDATE _ SET doc1='$doc1', doc2='$doc2' WHERE id='$id'";
mysql_query($sql)
or die('Erreur lors de la connexion à la base de donnée !'.$sql.'
'.mysql_error());
echo("<p align=\"center\">Mise à jour enregistrée</p>");
echo $sql
?>
$doc1 et $doc2 sont des valeurs saisies à l'aide de listes déroulantes dans mon tableau...
Ok merci pour l'exemple mais pour ce qui concerne ma bd l'id est générée automatiquement et non postée...
Puis-je mettre une autre requete que UPDATE... WHERE id='$id' comme par exemple WHERE nom='$nom' et prenom='$prenom' ?
Puis-je mettre une autre requete que UPDATE... WHERE id='$id' comme par exemple WHERE nom='$nom' et prenom='$prenom' ?
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
6 déc. 2008 à 19:31
6 déc. 2008 à 19:31
Bonsoir,
qd tu affiche ta page en lisant la BDD tu peux aussi lire l'id, donc il faut t'arranger pour le mettre dans cette page en "face" de chaque ligne
si tu veux un bouton enregistrer par ligne:
qd tu affiche ta page en lisant la BDD tu peux aussi lire l'id, donc il faut t'arranger pour le mettre dans cette page en "face" de chaque ligne
si tu veux un bouton enregistrer par ligne:
<?php //tu fais connexion et lecture dans la base pour affichage puis //$result=mysql_query(.... while ($row=mysql_fetch_array($result)){ ?> <form action="enr_modifs.php" method="post"> <input type="text" name="doc1" value="<?php echo $row['doc1']; ?>"> <input type="text" name="doc2" value="<?php echo $row['doc2']; ?>"> <!-- champ caché pour passer l'id --> <input type="hidden" name="id" value="<?php echo $row['id']; ?>"> <input type="submit" name="enregistrer" value="Enregistrer modif"> </form><br /> <?php } et dans ton fichier enr_modifs.php <?php if(isset($_POST['enregistrer'])){ $id=$_POST['id']; $doc1=$_POST['doc1']; $doc2=$_POST['doc2']; // tu fais connexion base ... puis UPDATE... WHERE id='$id' } ?>
C'est pas faute d'y avoir cru mais malheureusement après essai ça ne fonctionne tjs pas...
Voici les 2 codes au complet :
1. Tableau et saisie
<body class="white">
<form name="update" action="update_conf.php" method="POST" class="white">
<table width="550" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="50" rowspan="2" align="left"><b>ID</b></td>
<td width="105" rowspan="2" align="left"><b>NOM</b></td>
<td width="105" rowspan="2" align="left"><b>PRENOM</b></td>
<td width="100" rowspan="2" align="center"><b>DOC1</b></td>
<td width="100" rowspan="2" align="center"><b>DOC2</b></td>
<td width="90" rowspan="2" align="center"><b>MISE A JOUR</b></td>
</tr>
</table>
<?PHP
$db = mysql_connect('***', '***', '***');
mysql_select_db('***',$db);
$sql = "SELECT * FROM *** ORDER BY nom";
$req = mysql_query($sql) or die('Impossible de se connecter au serveur
'.$sql.'
'.mysql_error());
while($data = mysql_fetch_array($req))
{
?>
<table width="550" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="50" align="left"><?php echo $data['id']; ?><input type="hidden" name="id" value="<?php echo $data['id']; ?>"></td>
<td width="105" align="left"><?php echo $data['nom']; ?></td>
<td width="105" align="left"><?php echo $data['prenom']; ?></td>
<td width="100" align="center"><select name="doc1">
<option selected="selected"><?php echo $data['doc1']; ?></option>
<option value="A">OptionA</option>
<option value="B">OptionB</option>
<option value="C">OptionC</option></select></td>
<td width="100" align="center"><select name="doc2">
<option selected="selected"><?php echo $data['doc2']; ?></option>
<option value="A">OptionA</option>
<option value="B">OptionB</option>
<option value="C">OptionC</option></select></td>
<td width="90" align="center"><input type="submit" value="Enregistrer" name="envoyer"></td>
</tr>
</table>
<?php
}
mysql_close();
?>
</form>
</body>
2. Update_conf.php
<?PHP
if(isset($_POST['envoyer'])){
$id=$_POST['id'];
$reglement=$_POST['doc1'];
$certificat=$_POST['doc2'];
$db = mysql_connect('***', '***', '***');
mysql_select_db('***',$db);
$sql = "UPDATE *** SET doc1='$doc1', doc2='$doc2' WHERE id='$id'";
mysql_query($sql)
or die('Erreur lors de la connexion à la base de donnée !'.$sql.'
'.mysql_error());
echo("<p align=\"center\">Mise à jour enregistrée</p>");
}
?>
Voici les 2 codes au complet :
1. Tableau et saisie
<body class="white">
<form name="update" action="update_conf.php" method="POST" class="white">
<table width="550" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="50" rowspan="2" align="left"><b>ID</b></td>
<td width="105" rowspan="2" align="left"><b>NOM</b></td>
<td width="105" rowspan="2" align="left"><b>PRENOM</b></td>
<td width="100" rowspan="2" align="center"><b>DOC1</b></td>
<td width="100" rowspan="2" align="center"><b>DOC2</b></td>
<td width="90" rowspan="2" align="center"><b>MISE A JOUR</b></td>
</tr>
</table>
<?PHP
$db = mysql_connect('***', '***', '***');
mysql_select_db('***',$db);
$sql = "SELECT * FROM *** ORDER BY nom";
$req = mysql_query($sql) or die('Impossible de se connecter au serveur
'.$sql.'
'.mysql_error());
while($data = mysql_fetch_array($req))
{
?>
<table width="550" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="50" align="left"><?php echo $data['id']; ?><input type="hidden" name="id" value="<?php echo $data['id']; ?>"></td>
<td width="105" align="left"><?php echo $data['nom']; ?></td>
<td width="105" align="left"><?php echo $data['prenom']; ?></td>
<td width="100" align="center"><select name="doc1">
<option selected="selected"><?php echo $data['doc1']; ?></option>
<option value="A">OptionA</option>
<option value="B">OptionB</option>
<option value="C">OptionC</option></select></td>
<td width="100" align="center"><select name="doc2">
<option selected="selected"><?php echo $data['doc2']; ?></option>
<option value="A">OptionA</option>
<option value="B">OptionB</option>
<option value="C">OptionC</option></select></td>
<td width="90" align="center"><input type="submit" value="Enregistrer" name="envoyer"></td>
</tr>
</table>
<?php
}
mysql_close();
?>
</form>
</body>
2. Update_conf.php
<?PHP
if(isset($_POST['envoyer'])){
$id=$_POST['id'];
$reglement=$_POST['doc1'];
$certificat=$_POST['doc2'];
$db = mysql_connect('***', '***', '***');
mysql_select_db('***',$db);
$sql = "UPDATE *** SET doc1='$doc1', doc2='$doc2' WHERE id='$id'";
mysql_query($sql)
or die('Erreur lors de la connexion à la base de donnée !'.$sql.'
'.mysql_error());
echo("<p align=\"center\">Mise à jour enregistrée</p>");
}
?>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
6 déc. 2008 à 22:38
6 déc. 2008 à 22:38
il faut faire comme ça:
<body class="white"> <table width="550" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="50" rowspan="2" align="left"><b>ID</b></td> <td width="105" rowspan="2" align="left"><b>NOM</b></td> <td width="105" rowspan="2" align="left"><b>PRENOM</b></td> <td width="100" rowspan="2" align="center"><b>DOC1</b></td> <td width="100" rowspan="2" align="center"><b>DOC2</b></td> <td width="90" rowspan="2" align="center"><b>MISE A JOUR</b></td> </tr> </table> <?PHP $db = mysql_connect('***', '***', '***'); mysql_select_db('***',$db); $sql = "SELECT * FROM *** ORDER BY nom"; $req = mysql_query($sql) or die('Impossible de se connecter au serveur '.$sql.' '.mysql_error()); while($data = mysql_fetch_array($req)) { ?> <!-- ainsi tu auras autant de formulaires que de lignes affichées , donc le bouton submit postera seulement les valeurs comprises entre <form> et </form> de la ligne--> <form action="update_conf.php" method="POST" class="white"> <table width="550" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="50" align="left"><?php echo $data['id']; ?><input type="hidden" name="id" value="<?php echo $data['id']; ?>"></td> <td width="105" align="left"><?php echo $data['nom']; ?></td> <td width="105" align="left"><?php echo $data['prenom']; ?></td> <td width="100" align="center"><select name="doc1"> <option selected="selected"><?php echo $data['doc1']; ?></option> <option value="A">OptionA</option> <option value="B">OptionB</option> <option value="C">OptionC</option></select></td> <td width="100" align="center"><select name="doc2"> <option selected="selected"><?php echo $data['doc2']; ?></option> <option value="A">OptionA</option> <option value="B">OptionB</option> <option value="C">OptionC</option></select></td> <td width="90" align="center"><input type="submit" value="Enregistrer" name="envoyer"></td> </tr> </table> </form> <?php } mysql_close(); ?> </body>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain,
Vous êtes mon sauveur !! Merci INFINIMENT (3 jours que je m'acharne sur ma calvitie quand même...)
Vous êtes mon sauveur !! Merci INFINIMENT (3 jours que je m'acharne sur ma calvitie quand même...)
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
7 déc. 2008 à 11:40
7 déc. 2008 à 11:40
Aie dur pour le coiffeur !
mets ton post en résolu
Cordialement
@lain
mets ton post en résolu
Cordialement
@lain