Modifier le contenu de la base

Eléphanteau du PHP | 38 Messages

17 août 2005, 14:01

Bonjour à tous , :D

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 ]

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

17 août 2005, 14:04

à 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

Mammouth du PHP | 1029 Messages

17 août 2005, 14:07

un debut de réponse ICI
L'expérience est la somme de toutes nos erreurs.

Eléphanteau du PHP | 38 Messages

17 août 2005, 16:37

Merci pour vos réponses :

Cette commande :

Code : Tout sélectionner

UPDATE FmcThann SET contenu='mon nouveau texte'
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

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

17 août 2005, 16:45

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 ;)

Eléphanteau du PHP | 38 Messages

17 août 2005, 16:49

Sa marche !

je m'y colle merci pour ton aide !

dolphi

Eléphanteau du PHP | 38 Messages

18 août 2005, 14:53

Bonjour à tous , :D

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

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

18 août 2005, 15:04

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());

Eléphanteau du PHP | 38 Messages

18 août 2005, 15:16

Salut ,

Effectivement j'ai une erreur sql :

SQL syntax near 'prix=" '

Pourtant ce que j'ai écris c'est sa :


Code : Tout sélectionner

$sql = "UPDATE brice SET text='$text' prix='$prix' ";
diabolo

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

18 août 2005, 15:19

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' ";

Eléphanteau du PHP | 38 Messages

18 août 2005, 15:41

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. :shock:

J'ai l'impression que chaque modif décale tout ce qu'il y as dans la base. :evil:

J'comprend plus rien

J'ai une grosse erreur quelque part

diabolo

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

18 août 2005, 15:43

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 :lol:

P.S : enlève le [Résolu] de ton post ;)

Eléphanteau du PHP | 38 Messages

18 août 2005, 16:35

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

Eléphanteau du PHP | 38 Messages

22 août 2005, 14:22

Bonjour à tous , :D

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

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

22 août 2005, 14:44

non l'erreur provient de la virgule qui sépare les conditions

pour spécifier plusieurs conditions sépare les par "AND" ou "OR"