Page 1 sur 4
Modifier le contenu de la base
Posté : 17 août 2005, 14:01
par diabolo67
Bonjour à tous ,
Grâce à ce petit bout de code je parviens à afficher le contenu de ma base, mais comment faire pour modifier ce contenu et le renvoyer ensuite dans la base ?
<?
$host = "#";
$user = "#";
$pass = "#";
$bdd = "#";
// connection base de données
@mysql_connect($host, $user, $pass) or die ("Impossible de se connecter à la base de donnée");
//selection de la base
@mysql_select_db($bdd) or die ("Impossible de se connecter à la base");
$sql = 'SELECT * FROM '.$mois;
// echo $sql;
$res = mysql_query($sql);
while($val=mysql_fetch_array($res)) {
echo $val["date"]."<br>";
echo $val["titre"]."<br>";
echo "<hr>";
}
mysql_close();
?>
Merci
diabolo
edit mere-teresa : c'est mieux avec [ PHP ] que [ code ]
Posté : 17 août 2005, 14:04
par ouckileou
à l'aide d'un formulaire, et de la commande SQL "UPDATE" : pour mettre à jour des données existantes
regarde ce tuto déjà :
http://www.phpdebutant.org/article64.php
Posté : 17 août 2005, 14:07
par Maitrepylos
Posté : 17 août 2005, 16:37
par diabolo67
Merci pour vos réponses :
Cette commande :
me permet de le faire directement avec mon editeur php,mais moi ce que je cherche à faire c'est pouvoir modifier ma base à partir d'un formulaire présent sur le site.
Merci pour votre aide
diabolo
Posté : 17 août 2005, 16:45
par ouckileou
cette commande te permet de le faire directement via une interface pour MySQL : phpMyAdmin, MySQL Front, MySQL Query Browser... etc
ou bien la tienne que tu souhaites développer, et dont voici les simples étapes :
1 - un formulaire (que tu peux pre-remplir en sélectionnant les infos de la table)
2 - tu réceptionnes ce formulaire, et ses données
3 - avec celles-ci tu construit ta requête UPDATE, et tu l'exécutes avec mysql_query
lis les tutoriels qui présentent ces étapes sur le site que l'on t'a donné, et essaye de commencer
et poses des questions si tu as de sproblèmes précis

Posté : 17 août 2005, 16:49
par diabolo67
Sa marche !
je m'y colle merci pour ton aide !
dolphi
Posté : 18 août 2005, 14:53
par diabolo67
Bonjour à tous ,
Je suis parvenu à récupérer les données de ma base dans un formulaire, je peux à loisir modifier ceux-ci maintenant je veux pouvoir renvoyer les modifs dans la base, pour cela j'ai écris sa :
Code : Tout sélectionner
<?php
$host = "#";
$user = "#";
$pass = "#";
$bdd = "#";
// connection base de données
@mysql_connect($host, $user, $pass) or die ("Impossible de se connecter à la base de donnée");
//selection de la base
@mysql_select_db($bdd) or die ("Impossible de se connecter à la base");
// Requête modifiée
$text = mysql_escape_string($text);
$date = mysql_escape_string($prix);
$sql = "UPDATE brice SET text='$text' prix='$prix' ";
$res = mysql_query($sql);
header("location:index.php");
?>
J'ai aucune erreur qui s'affiche mais rien non plus qui bouge dans ma base.
j'ai donc commis une erreur ou un oubli, si quelqu'un peut m'aider merci à lui.
diabolo
Posté : 18 août 2005, 15:04
par ouckileou
ici tu ne récupères aucune valeur de formulaire, normal ?
ta requête SQL est fausse, il manque une petite virgule entre les insertions
fais ceci pour afficher les erreurs MySQL :
$res = mysql_query($sql) or die(mysql_error());
Posté : 18 août 2005, 15:16
par diabolo67
Salut ,
Effectivement j'ai une erreur sql :
SQL syntax near 'prix=" '
Pourtant ce que j'ai écris c'est sa :
diabolo
Posté : 18 août 2005, 15:19
par ouckileou
oui, et donc comme je l'ai dit ça ne fonctionnera pas car il faut séparer les valeurs par une virgule
$sql = "UPDATE brice SET text='$text', prix='$prix' ";
Posté : 18 août 2005, 15:41
par diabolo67
Ok mais maintenant ma base se modifie complètement.
Lorsque je modifie le contenu text et prix , se sont tous les entrée prix de ma base brice qui sont modifier. La modif prix s'enregistre dans "text" .
Et lorsque je modifie le "text" il s'affiche dans "nom" partie que je voulais pas modifier.
J'ai l'impression que chaque modif décale tout ce qu'il y as dans la base.
J'comprend plus rien
J'ai une grosse erreur quelque part
diabolo
Posté : 18 août 2005, 15:43
par ouckileou
Lorsque je modifie le contenu text et prix , se sont tous les entrée prix de ma base brice qui sont modifier. La modif prix s'enregistre dans "text" .
oui avec cette requête toutes les lignes sont modifiées c'est normal, il faut utiliser WHERE avec une colonne d'identifiant pour spécifier quelle(s) ligne(s) tu souhaites modifier
après que prix s'enregistre dans nom, c'est déjà plus bizarre
P.S : enlève le [Résolu] de ton post

Posté : 18 août 2005, 16:35
par diabolo67
OK
j'ai écris ceci mais bien sur sa ne fonctionne pas :
Code : Tout sélectionner
$sql = "UPDATE brice SET text='$text', prix='$prix' WHERE ID='$brice'";
Je pense que je me suis trompé avec l'id qui est en fait le nom de la table. Dans cette table je veux changer que deux champs "text" et "prix".
Pour le "resolu" du post j'ai aucune idée comment faire.
diabolo
Posté : 22 août 2005, 14:22
par diabolo67
Bonjour à tous ,
Je reviens vers vous parce que je n'ai pas encore réussi à régler mon problème.
Je parviens à extraire les donées de ma base et à les afficher dans un formulaire pour pouvoir les modifier mais lorsque je les renvoi dans ma base j'ai l'erreur suivante:
Code : Tout sélectionner
You have an error in your SQL syntax near ' ID='' ' at line 1
Il semblerai donc que j'ai une petite erreur de syntax avec mes quote et double-quote . Je vous redonne le code si quelqu'un voit ou est l'erreur merci à lui pour son aide.
Code : Tout sélectionner
$text = mysql_escape_string ($text);
$prix = mysql_escape_string ($prix);
$sql = "UPDATE brice SET text='$text' , prix='$prix' WHERE ID='$text'
, ID='$prix' ";
$res = mysql_query($sql) or die (mysql_error() ) ;
Merci
diabolo
Posté : 22 août 2005, 14:44
par ouckileou
non l'erreur provient de la virgule qui sépare les conditions
pour spécifier plusieurs conditions sépare les par "AND" ou "OR"