Se connecter avec
S'enregistrer | Connectez-vous

modifier une entrée d'une base de donnes

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte

ok ok.
J'utilise une base de donnees mysql.
J'ai un formulaire sur une page web qui permet à l'utilisateur d'entrer ses coordonnees dans ma table "contacts", donc il entre pseudo, adresse tel etc. et puis ça envoie les infos dans ma table.
Ensuite j'ai sur ma page un tableau ou sur la première ligne il y a les titres "pseudo", "adresse" etc, puis sur les ignes suivantes de ce tableau, il y a , sur chaque ligne, les coordonnes entrées par chaque utilisateur.
Et je voudrais que quand l'utilisateur clique sur la case du tableau ou est ecrit son pseudo, il puisse modifier ses coordonnes.
Mon probleme est donc de recuperer la valeur du pseudo pour ensuite pouvoir repérer sur quelle entrée de la base de données je vais agir...
Euh... Ca va la?

Citation :

Euh... Ca va la?


on va voir :) 

je suppose que tu bosses avec du php (à défaut)
Citation :

J'ai un formulaire sur une page web qui permet à l'utilisateur d'entrer ses coordonnees dans ma table "contacts", donc il entre pseudo, adresse tel etc. et puis ça envoie les infos dans ma table.

tu arrives déjà à récupérer les données d'une page, il est où le problème. tu fais pareil pour la case du tableau.

tu peux, sur la case, mettre un lien du genre
  1. echo "<a href='sciprt.php?pseudo=$pseudo'>$pseudo</a>";

une fois cliqué, tu le récupères dans script.php dans la variable $_GET['pseudo']

d'accord d'accord :jap: 
bon j'ai un peu du mal...
une fois que j'ai cliqué sur le pseudo j'accéde à un nouveau formulaire pour modifier les données. Comment je fais pour que dans les champs soient écrits les valeurs d'origine?
J'ai essayé value="<?php echo($pseudo) ;?>" et value=".$pseudo.", mais rien ne marche, à chaque fois dans le champs ça écrit <?php echo($pseudo) ;?> ou .$pseudo. et non pas le pseudo...

merci d'etre patient avec moi!
voila le code :

<html>
<head>
<title>modification</title>
</head>
<body style="color: rgb(255, 255, 255); background-color: rgb(102,

51, 255);"
alink="#ffccff" link="#ffccff" vlink="#cc66cc">

<?php
$cnx = mysql_connect( "localhost", "root", "" ) ;
$db = mysql_select_db( "contacts" ) ;
$personne = $_POST["pseudo"] ;
$sql = "SELECT *
FROM contacts
WHERE pseudo= $personne ;
$requete = mysql_query( $sql, $cnx ) ;

if( $result = mysql_fetch_object( $requete ) )
{
?>
<form method='post' action='modifier.php'>
<input type="hidden" name="id" value="<?php echo($id) ;?>">
<table style="width: 640px; height: 222px;">
<tbody>
<tr>
<td>VotrePseudo
(ou nom normal):</td>
<td><input name="pseudo" id="pseudo" value=".$pseudo."
size="30" type="text"></td>
</tr>
<tr>
<td>Votre E-mail:</td>
<td><input name="email" id="email" value=".$email."
size="60"></td>
</tr>
<tr>
<td>Votre téléphone:</td>
<td><input name="telephone" id="telephone" value=".$telephone."
size="60"></td>
</tr>
<tr>
<td>Votre adresse MSN:</td>
<td><input name="msn" id="msn" value=".$msn." size="60"></td>
</tr>
<tr>
<td>Votre adresse postale:</td>
<td><input name="adresse" id="adresse" value=".$adresse."
size="60"></td>
</tr>
<tr>
<td>Le titre de votre témoignage:</td>
<td><input name="temoignage" id="temoignage"

value=".$temoignage."
size="60"></td>
</tr>
</tbody>
</table>
<input value="Envoyer" type="submit"> - <input
value="Annuler" type="reset">

</form>
<?php
}//fin if
?>
</body>
</html>

oui pour l'extention je ne sais pas quoi mettre, si je mets .php ça bug au niveau de l'ouverture du formulaire<form>, et si je mets .html, je ne suis pas sûr que les lignes php marchent...

je te le confirme, si tu mets .html, le php n'est pas interprete et donc ne fonctionne pas.
pour ton code, quand tu le postes, il faut l'encadrer par des balises code [ code ] [ /code ] sans espaces.

pour l'utilisation de mysql_fetch_object je t'invite à lire:
http://fr.php.net/mysql_fetch_object

  1. <html>
  2. <head>
  3. <title>modification</title>
  4. </head>
  5. <body style="color: rgb(255, 255, 255); background-color: rgb(102,
  6.  
  7. 51, 255);"
  8. alink="#ffccff" link="#ffccff" vlink="#cc66cc">
  9.  
  10. <?php
  11. $cnx = mysql_connect( "localhost", "root", "" ) ;
  12. $db = mysql_select_db( "contacts" ) ;
  13. $personne = $_POST["pseudo"] ;
  14. $sql = "SELECT *
  15. FROM contacts
  16. WHERE pseudo= $personne ; "; // la tu as oublié de refermé les "
  17. ...
  18. <input type="hidden" name="id" value="<?php echo $result->id ;?>">
  19. <!-- le mysql_fetch_object retourne une classe. $id tout seul n'est pas reconnu -->
  20. ...
  21. <td><input name="pseudo" id="pseudo" value="<?= $result->pseudo ?>"
  22. size="30" type="text"></td>
  23. ...


tu completes les corrections, tu modifies l'extension de ton fichier en .php, ca devrait marcher par la suite.

si un fichier php ne marche pas, faut regarder les erreurs, ca donne plein d'information.
les erreurs sont dans le fichier log d'apache (si tu as apache).
son emplacement dépend de ton installation

oui j'ai regardé les données existent. :D 
ok voila le code:
  1. <html>
  2. <head>
  3. <title>modification</title>
  4. </head>
  5. <body style="color: rgb(255, 255, 255); background-color: rgb(102, 51, 255);"
  6. alink="#ffccff" link="#ffccff" vlink="#cc66cc">
  7. <?php
  8. $cnx = mysql_connect( "localhost", "root", "" ) ;
  9. $db = mysql_select_db( "contacts" ) ;
  10. $pseudo = $_GET["personne"] ;
  11. $sql = "SELECT * FROM contacts
  12. WHERE pseudo= $pseudo ";
  13. $requete = mysql_query( $sql, $cnx ) ;
  14.  
  15. //affichage des données:
  16. if( $result = mysql_fetch_object( $requete ) )
  17. {
  18. ?>
  19. <form method='post' action='modifier.php'>
  20. <input type="hidden" name="id" value="<?php echo $result->id ;?>">
  21. <table style="width: 640px; height: 222px;">
  22. <tbody>
  23. <tr>
  24. <td>VotrePseudo</td>
  25. <td><input name="pseudo" id="pseudo" value="<?= $result->pseudo ?>"
  26. size="30" type="text"></td>
  27. </tr>
  28. <tr>
  29. <td>Votre E-mail:</td>
  30. <td><input name="email" id="email" value="<?= $result->email ?>"
  31. size="60"></td>
  32. </tr>
  33. ....
  34. </tbody>
  35. </table>
  36. <input value="Envoyer" type="submit"> - <input
  37. value="Annuler" type="reset">
  38.  
  39. </form>
  40. <?php
  41. }//fin if
  42. ?>
  43. </body>
  44. </html>


maintenant ça m'affiche :
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in c:\logiciel\easyphp\www\contacts\formulairemodif.php on line 16

et si je n'utilise pas mysql_fetch_object ça me met que des <BR>
:cry: 

:)  il faut lire ce que fait la fonction avant de vouloir l'enlever, je t'ai donné le lien plus haut

remplaces les lignes mysql... par
  1. $cnx = mysql_connect( "localhost", "root", "" ) or die (mysql_error());
  2. $db = mysql_select_db( "contacts" ) or die (mysql_error());
  3. $pseudo = $_GET["personne"] ;
  4. $sql = "SELECT * FROM contacts
  5. WHERE pseudo= $pseudo ";
  6. $requete = mysql_query( $sql, $cnx ) or die (mysql_error());


et repostes l'erreur
tu es sûr de ta base? de la table etc...

mmm... :heink: 
je dois encore mettre la ligne :
if( $result = mysql_fetch_object( $requete ) )
ou pas? :pt1cable: 
Si je la mets ça affiche rien.
Et si je la mets pas ça mets encore des <BR>...
J'ai regardé le fichier log d'Apache, il dit :
Undefined variable: result in c:\logiciel\easyphp\www\contacts\formulairemodif.php on line 17
et ça sur toutes les lignes bien sûr!

:cry:  :cry:  :cry: 

mais t'a lu ce que ca fait ou pas????
  1. $cnx = mysql_connect( "localhost", "root", "" ) ; // ca se connecte à la base
  2. $db = mysql_select_db( "contacts" ) ; // ca selectionne la table
  3. ....
  4. $requete = mysql_query( $sql, $cnx ) ; // ca execute la requete
  5. if( $result = mysql_fetch_object( $requete ) ) // ca recupere le resultat


mysql_fetch_objet RECUPERE le resultat de ta requete, si tu l'enleves a quoi sert ton programme?

undefined variable => variable indéfini (en d'autres termes inconnu)
c'est normal si tu enleves la ligne if( $result = mysql_fetch_object( $requete ) ) qui la définit

t'as rajouté les die (mysql_error()) que je t'ai dit? ca te donne quoi?
t'as exécuté ta requête sur phpMyAdmin?

etc, etc...
Lassé par la pub ? Créez un compte
Tom's guide dans le monde