Votre question

modifier une entrée d'une base de donnes

Tags :
  • annuaire
  • Programmation
Dernière réponse : dans Programmation
6 Décembre 2006 10:42:07

Bonjour!
J'ai créé une table pour faire une sorte d'annuaire contenant: id(pour l'auto-increment), pseudo, adresse...
J'aimerai que quand l'utilisateur click sur le pseudo, il puisse modifier les informations le concernant.
Comment récupérer l'entrée de la table correspondant au pseudo sur lequel on a cliqué?

Autres pages sur : modifier entree base donnes

6 Décembre 2006 11:20:39

  1. select adresse from table where pseudo = la_valeur_du_pseudo_clique;


sans plus d'informations, c'est ce que je peux faire
6 Décembre 2006 11:40:04

oki merci! Mais comment récupérer la valeur du pseudo cliqué??
Qu'est-ce que tu veux d'autre comme infos pour m'aider?
Contenus similaires
6 Décembre 2006 11:49:39

tu developpes en quoi?
c'est quoi la base de données?
la où l'utilisateur sélectionne le pseudo, c'est une page web? si oui, c'est un formulaire? la méthode de passage de paramètres...
ce genre d'info
6 Décembre 2006 11:58:15

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?
6 Décembre 2006 12:11:03

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']

6 Décembre 2006 13:23:56

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...
6 Décembre 2006 13:45:46

le formulaire, il est bien sur une page php??
poste la partie de ton script concernant le formulaire en indiquant le nom du fichier.
ca sera plus clair
6 Décembre 2006 14:40:45

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...
6 Décembre 2006 14:59:26

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
6 Décembre 2006 15:43:05

ça marche presque!!
mais ça affiche <br /> dans tous les champs maintenant...
:(  :(  :( 
6 Décembre 2006 16:01:55

comme je vois nulle part de <br/> dans ton code, je peux pas trop te repondre.
regarde d'abord avec phpmyadmin (ou ton truc pour acceder a ta base) si les données existent.
ensuite reposte ton code
6 Décembre 2006 16:38:17

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: 
6 Décembre 2006 17:28:56

:)  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...
6 Décembre 2006 18:02:47

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: 
6 Décembre 2006 18:11:35

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...
6 Décembre 2006 18:20:45

oki maintenant ça me mets:
Champ 'Caro' inconnu dans where clause
Je sais pas ce que ça veut dire... :o 
6 Décembre 2006 18:25:38

je suppose que tu veux lire les infos de la personne dont le pseudo est caro:
rajoutes des ' autour de pseudo
  1. $sql = "SELECT * FROM contacts
  2. WHERE pseudo= '$pseudo' ";
6 Décembre 2006 18:31:25

:pt1cable:  :kaola:  :sol:  :whistle:  :wahoo:  :lol:  :jap:  :love: 
WAAAAAAAAH ça MAAAARCHEEEE!!!!!!!!
:love:  :love:  :love:  :love:  :love:  :love: 
:pt1cable:  :pt1cable:  :pt1cable:  :pt1cable:  :pt1cable: 
Merci beaucoup pour ton aide!!!
Sérieux t'as été trop patient avec moi et je t'en remercie vraiment beaucoup!! :bounce: 
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS