Smartwave
Messages : 75 Inscrit le 20/09/06
Non connecté
|
|
Posté le 11 octobre 2006 - 16 h 16 m 19 s |
|
|
Me voila de retour? Je fais une petite pause avec mon site car j'ai encore plus urgent à faire : une base de donnée.
J'explique le problème.
J'ai un packet d'information client que je souhaite mettre à jour.
J'ai réussit à les mettrent dans MySQL mais les infos sont incomplétes.
Pensez vous qu'il est possible, d'envoyer à chaque client un e-mail html (puisque maintenant je sais faire, encore merci) avec une fenètre sur les champs SQL qui le conserne, de lui demander de les vérifier, de les compléter et de les renvoyer via un bouton submit.
Alors ! alors !
Si c'est oui, je continu à chercher.
Si c'est non, je ... continu aussi.
|
|
| |
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 528 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 11 octobre 2006 - 17 h 17 m 23 s |
|
|
alors oui et non
oui car c'est possible
non car tu n'as pas le niveau necessaire, et franchement, je me sens pas de te faire le truc comme on a fait le reste.
au bout d'un moment, faut aussi que tu comprennes qu'il faut un niveau minimum, faire un site c'est bein c'est sur, mais soit tu t'y met a fond et la on peut t'aider sur des trucs precis, soit tu ne fais pas de trucs compliques, parce que franchement, sans vouloir t'offenser, quand on voit le mal que t'as et les confusions que tu fais sur des trucs hyper basiques, je me vois pas t'aider...
pour etre clair, le truc de mail ou tu as passe des heures et que je t'ai file tout fait, il n'y avait qu'a recopier l'exemple et avoir un minimum de connaissances en info, c'est vraiment le truc le plus con du monde d'envoyer un mail. sans parler que si tu avais pris la doc de php pour voir ce que chaque instruction faisait, tu aurais pu y arriver tout seul.
maintenant, ton site a l'air d'etre pour un pro, dans ce cas, je te conseille plutot de t'orienter vers un professionnel et tu lui refiles le bebe, car je pense que tu ne te rend pas du tout compte de la tache a accomplir.
tu vois, moi par exemple je sais meme pas ouvrir le capot de ma bagnole, ben j'essaye meme pas !! si je tombe en rade, j'appelle un depanneur  je pense qu'on a tous des endroits ou on est bon et d'autres ou on l'est moins, il faut en tenir compte.
dans ton cas, il y a tellement de lacunes que pour etre franc, j'ai meme eu tord de te filer les trucs tout faits, je pense que je net'ai pas du tout rendu service, preuve en est que je suis certain à 300% que si je te mettais devant un ecran sans rien tu ne serais meme pas capable de m'expliquer le pourquoi du comment de tel ou tel portion de code.
donc bon... continues si tu veux, mais tu vas te planter, et ce n'est pas parce que les gens te fileront du code tout fait que tu arriveras a rassembler le tout pour former un ensemble homogene. sans parler des aspects cnil dont il faut que tu te preoccupes avant de creer tout fichier nominatif
encore une fois, suis un seul objectif, et la methode est la suivante :
1- apprends le html car le php c'est qu'ecrire du html
2- apprends le php
ensuite on verra
ne te meprends pas, je veux pas te souler avec mes conneries, mais tu demandes un avis, je te le donne en toute honnetete
|
|
| |
|
Smartwave
Messages : 75 Inscrit le 20/09/06
Non connecté
|
|
Posté le 11 octobre 2006 - 18 h 33 m 00 s |
|
|
Effectivement il y a du vrais dans ceux que tu dit.
Mais il ne faut pas regretter ce que l'on à fait ensemble .
D'accord je ni comprend rien, mais le fait d'avancer (avec ton code  ) m'encourage beaucoup, me donne la force de continuer et donc me permet de progresser.
Certainement pas comme tu aimerait, mais crois moi, je progresse.
Il y à six mois, je ne savais même pas que les sites web était codés.
Et franchement c'est pas facile.
De 9h jusqu'a 11h du soir non stop je suis devant l'ordi. Beaucoup de données à apprendre et à comprendre. Je ne vois pas comment je peux faire mieux. Tu ne vois pas tout mais avant de poster une réponse, je lis plusieurs tuto et fait des dixaines de test.
J'ai comencé certainement trés gros, trop gros, mais je n'aurais pas pu faire autrement.
Pas le temps de commencer par les bases, pas l'argent pour aller voir un pro.
Mais de la volonter pour apprendre, et enormement de soutien de ta part.
Je ne baisserait pas les bras et ne finirais pas chez un pro.
J'apprécie énormement ton aide. Pro ou pas, moi perso, j'aime bien apprendre le code.
Regarde je ne suis pas si nul, avec des tutos, une migraine et sans t'ennuyé, j'ai bidouillé un code et ça marche presque
1. <?php
2.
3. // Maintenant on doit récupérer les 10 dernières entrées de la table
4. // On se connecte d'abord à MySQL :
5. mysql_connect("localhost", "xxxxxx", "xxxxxxx");
6. mysql_select_db("xxxxxxn");
7.
8. // On utilise la requête suivante pour récupérer les 10 derniers prenoms :
9. $reponse = mysql_query(("SELECT nom, prenom FROM xxxxxxx WHERE id='1'"));
10.
11. // On se déconnecte de MySQL
12. mysql_close();
13.
14. // Puis on fait une boucle pour afficher tous les résultats :
15. while ($donnees = mysql_fetch_array($reponse) )
16. {
17. ?>
18.
19. <form action="là je suis perdu" method="mais je m'accroche">
20.
21. <p>
22. nom : <input type="text" name="nom" value="<?php echo $donnees['nom']; ?>" /><br />
23. prenom : <input type="text" name="prenom" value="<?php echo $donnees['prenom']; ?>"/><br />
24. <input type="submit" value="Envoyer" />
25. </p>
26.
27. </form>
28.
29. <?php
30. }
31. // Fin de la boucle, le script est terminé !
32. ?>
|
|
| |
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 528 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 12 octobre 2006 - 07 h 32 m 31 s |
|
|
non non, tu n'as pas compris, je ne te dis pas que tu es nul, mais je suis dac avec toi quand tu dis que tu attaques trop gros d'un coup, et du coup effectivement tu risques de passer a cote de trop de bases. c'est surtout ca qui me fait peur car la en + tu ajoutes le sql, ce qui fait quand meme 3 "langages" que tu attaques sans vraiment en comprendre les subtilites... ca va commencer a etre chaud...
par exemple sur ton exemple, vu que tu as l'air tetu
ligne 9, ta requete : cette requete ne ramenera jamais qu"un seul profil et pas 10 comme tu le penses. de fait, la boucle while en dessous est inutile car si ta requete ne ramene qu'un seul enregistrement (cf le where), celle ci n'a pas besoin d'une boucle pour parcourir le resultat sequentiellement.
ligne 12 : tu fais un mysql_close avant d'avoir utilise tes donnees.
lignes 19 et 30 : le form ne doit pas etre dans la boucle mais en dehors sinon pour 10 enregistrement tu te retrouves a vec 10 forms differents. d'autre part, la mise a jour d'un enregistremet avec cette ùethode ne te permettra pas de mettre a jour les 10 enregistrements que tu voulais recuperer.
voici les etapes que tu dois suivre pour y arriver :
1- refaire ta requete
2- utiliser la boucle seulement pour afficher tes enregistrements
3- modifier le nom de la variable pour chaque enregistrement sinon tu auras tous les noms qui s'appelleront pareil docn quand il va falloir mettre a jour, tu vas ecraser 10 fois la meme valeur
4- sortir le formulaire d ela boucle
5- donner une page de destination a ton form
6- coder cette page pour qu'elle mette a jour les infos de la base
voila c'est deja le debut
|
|
| |
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 528 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 12 octobre 2006 - 07 h 33 m 09 s |
|
|
ah il faudra aussi echaper tes valeurs car si tu as un nom avec une apostrophe, ca va foirer ;p
|
|
| |
|
Smartwave
Messages : 75 Inscrit le 20/09/06
Non connecté
|
|
Posté le 12 octobre 2006 - 11 h 01 m 32 s |
|
|
Merci grabber, je savais que je pouvais compter sur toi.
Je te promet de faire beaucoup plus d'effort.
Voic mes nouveaux codes retravaillé point par point :
1. La requete : les commentaires n'etait pas à jour (c'est ceux de mon ancien tuto sur le minichat).
1. // On utilise la requéte suivante pour récupérer l'entrée nom et prenoms de l'id=Y:
2. $reponse = mysql_query(("SELECT nom, prenom FROM xxx WHERE id='Y'"));
2. La boucle : En fait je cherche à afficher qu'un seul enregistrement, la boucle n'est donc pas la bonne. J'ai beau chercher sur d'autre site, je ne trouve pas mieux.
1. while ($donnees = mysql_fetch_array($reponse)
3. la variable = comme j'affiche que id=Y (et plus les 10 derniers) je pense que je n'est plus besoin de changer le nom des variables
4. form dans la boucle = lorsque je le sort de la boucle la fonction <echo> ne marche plus 
5. et 6. = je garde le meilleur pour plus tard 
PS : ligne 12 : Ca marche quand même comme ca  .
Je pensait que niveaux cq , c'était mieux de déconnecter de MySQL dessuite. 
Voici la mise à jour de mon nouveau code :
1. <?php
2.
3. // Maintenant on doit récupérer l"entrées "id=Y" de la table
4. // On se connecte d'abord à MySQL :
5. mysql_connect("localhost", "wwwwwww", "xxxxxxxx");
6. mysql_select_db("zzzzzzzz");
7.
8. // On utilise la requéte suivante pour récupérer l'entrée nom et prenoms :
9. $reponse = mysql_query(("SELECT nom, prenom FROM fichier_clients WHERE id='Y'"));
10.
11. // Puis on fait une boucle pour afficher tous les résultats :
12. while ($donnees = mysql_fetch_array($reponse) )
13. {
14. ?>
15.
16. <form action="../base/email6.php" method="post">
17.
18. <p>
19. nom : <input type="text" name="nom" value="<?php echo $donnees['nom']; ?>" /><br />
20. prenom : <input type="text" name="prenom" value="<?php echo $donnees['prenom']; ?>"/><br />
21. <input type="submit" value="Envoyer" />
22. </p>
23.
24. </form>
25.
26.
27. <?php
28. // Fin de la boucle, le script est terminé !
29. }
30.
31. // On se déconnecte de MySQL
32. mysql_close();
33.
34. ?>
|
|
| |
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 528 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 12 octobre 2006 - 11 h 48 m 40 s |
|
|
ok
alors en ligne 12, vire les while et la prenthese en debut de ligne ainsi que la prenthese en fin de ligne. si tu ne veux qu'un seul enregistrement, tu n'as pas besoin de while. vires aussi l'accolade en ligne 13 et 29.
dans ta requete, tu as double les parentheses, c'est inutile une seule suffit.
dasn le where de ta requete, pas de quotes autour de Y car Y est un entier et non une chaine. d'ailleurs ce Y devrait etre un GET['y'] car le Y va provenir d'une page anterieure et probablement passe via l'url (donc get).
la deco ne se fait qu'a la fin, ce n'ets pas une question de secu mais d'economie de mysql, si tu laisse toutes les connexions ouvertes, tu fais bosser le srv pour rien. si tu fermes la connexion, le srv bosse moins
ensuite le action pointe vers un fichier email... ca devrait pointer vers un script qui met a jour les donnees si tu les modifie
voila de quoi commencer !!!
|
|
| |
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 528 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 12 octobre 2006 - 11 h 49 m 28 s |
|
|
en ligne 12 qd tora vire les parentheses, n'oublie pas le ";" en fin de ligne
|
|
| |
|
Smartwave
Messages : 75 Inscrit le 20/09/06
Non connecté
|
|
Posté le 12 octobre 2006 - 12 h 45 m 21 s |
|
|
pour mettre à jour les données :
je protège la base du html avec "entities"
1. $nom = htmlentities ($_POST['nom']);
2. $prenom = htmlentities ($_POST['prenom']);
j'enregistre avec la fonction "INSERT INTO"
1. mysql_query("INSERT INTO zzzzzzzz VALUES('', '$nom', '$prenom')");
Pour le where de ma requete avec un GET['y'] tu met le doit ou ça fait mal.
Je pensait dupliquer le code et en faire un par client en remplacant id à chaque fois
Mais je ne suis pas fier de cette solution
|
|
| |
Message édité 1 fois, la dernière par Smartwave le 12 octobre 2006 - 15 h 46. |
| |
|
Smartwave
Messages : 75 Inscrit le 20/09/06
Non connecté
|
|
Posté le 12 octobre 2006 - 13 h 00 m 02 s |
|
|
Je crois qu'il y a une boulette.
INSERT va me créer de nouvelles données et nom les remplacer
|
|
| |
|
Smartwave
Messages : 75 Inscrit le 20/09/06
Non connecté
|
|
|
| |
|
Woofy
Pour les bons tuyaux me demander
Messages : 26 196 Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
|
|
Posté le 12 octobre 2006 - 13 h 20 m 58 s |
|
|
oui, utilise UPDATE.
Ca sera du genre UPDATE `table` SET `pseudo`='$pseudo', `message`='$message' WHERE `id`='$id'
Bon la je suppose que ta table a comme champs id, pseudo et message, donc a toi de les changer.
Pour le Where, il faut que tu mette le/les champs qui vont identifier la personne qu'il faut changer. Ca peux être le pseudo par exemple, ou alors un identifiant automatique.
|
|
| |
Totalement inutile, donc completement indispensable 
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 528 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 12 octobre 2006 - 13 h 44 m 51 s |
|
|
wwofy, enleves moi ces quotes pour l'id 
non mais
|
|
| |
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 528 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 12 octobre 2006 - 13 h 45 m 28 s |
|
|
oups dsl pour la fôte
|
|
| |
|
Woofy
Pour les bons tuyaux me demander
Messages : 26 196 Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
|
|
Posté le 12 octobre 2006 - 14 h 26 m 22 s |
|
|
Bah moi, quand j'échappe, j'échappe tout ! 
On sais jamais ce qui peux passer dans l'id !
|
|
| |
Totalement inutile, donc completement indispensable 
|
Smartwave
Messages : 75 Inscrit le 20/09/06
Non connecté
|
|
Posté le 12 octobre 2006 - 14 h 32 m 40 s |
|
|
Je crois qu'il y à un petit problème. je m'explique (enfin j'essaye)
Si le php UPDATE fait appel à la variable $nom qui fait appel à <?php echo $donnees['nom']; ?> qui fait appel à mysql_query
Alors $nom égale mysql
Donc on à beau changer à l'ecran la variable $nom UPDATE enregistrera toujour les données d'origine de mysql.
Est ce que je suis clair
Voici mes codes qui posent problème :
1. <?php
2.
3. // Maintenant on doit récupérer l"entrées "id=1" de la table
4. // On se connecte d'abord à MySQL :
5. mysql_connect("localhost", "xxxxxxxxx", "yyyyyyyy");
6. mysql_select_db("zzzzzzzzzzzz");
7.
8. // On utilise la requéte suivante pour récupérer l'entrée nom et prenoms :
9. $reponse = mysql_query("SELECT nom, prenom FROM iiiiiiiiiiiiiii WHERE id=1");
10.
11. // Puis on affiche tous les résultats :
12. $donnees = mysql_fetch_array($reponse);
13.
14. // On se déconnecte de MySQL
15. mysql_close();
16.
17. ?>
18.
19. <form action="../base/update.php" method="post">
20.
21. <p>
22. nom : <input type="text" name="nom" value="<?php echo $donnees['nom']; ?>" /><br />
23. prenom : <input type="text" name="prenom" value="<?php echo $donnees['prenom']; ?>"/><br />
24. <input type="submit" value="Envoyer" />
25. </p>
26.
27. </form>
et le code update.php
1. <?php
2.
3. // D'abord, on se connecte à MySQL
4. mysql_connect("localhost", "xxxxxxxxx", "yyyyyyyy");
5. mysql_select_db("zzzzzzzzzzz");
6.
7. // On utilise la fonction PHP htmlentities pour éviter d'enregistrer du code HTML dans la table
8. $mom = htmlentities ($_POST['nom']);
9. $prenom = htmlentities ($_POST['prenom']);
10.
11. // Ensuite on enregistre le message
12. mysql_query("UPDATE 'iiiiiiiiiiiiiiiiiiii' SET 'nom'='$nom', 'prenom'='$prenom' WHERE 'id'=$id");
13.
14. // On se déconnecte de MySQL
15. mysql_close();
16.
17.
18. ?>
|
|
| |
Message édité 1 fois, la dernière par Smartwave le 12 octobre 2006 - 15 h 48. |
| |
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 528 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 12 octobre 2006 - 15 h 09 m 51 s |
|
|
oh my god
|
|
| |
|
Smartwave
Messages : 75 Inscrit le 20/09/06
Non connecté
|
|
Posté le 12 octobre 2006 - 15 h 16 m 56 s |
|
|
|
|
|
| |
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 528 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 12 octobre 2006 - 15 h 17 m 38 s |
|
|
bon alors ton code a pas l'air trop degueu mine de rien 
en fait le probleme c'est qu'y manque un truc a tout ce merdier
et c'est ca qui te bloque car tu n'as pas analyse ton probleme en amont. du coup, tu ne sais plus comment gerer ton histoire d'id, on va remedier a ca.
la 1ere chose a faire, c'est de reflechir a comment tu vas pouvoir visualiser le truc avant de commencer a coder.
donc explique precisement ce que tu veux faire qu'on puisse determiner comment faire
la tu fais un formulaire avec nom et prenom et tu nous parle d'un pseudo qu'on sait meme pas d'ou ca sort !!!
c'est pour des clients ? pour des pseudos ? que faut il faire au final ?
|
|
| |
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 528 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 12 octobre 2006 - 15 h 21 m 01 s |
|
|
sinon pour mysql, trouve un tuto basique pour les requetes parce que tu as ecrit franchement n'importe quoi sur le post du dessus :
[cite]
Si le php UPDATE fait appel à la variable $pseudo qui fait appel à <?php echo $donnees['pseudo']; ?> qui fait appel à mysql_query
Alors $pseudo égale mysql
Donc on à beau changer à l'ecran la variable $pseudo UPDATE enregistrera toujour les données d'origine de mysql.
[/cite]
quel variable pseudo ?
mysql ne fait appel a rien 
$pseudo == mysql ???????????????????????????????????? mysql est une base de donnees, de quoi parles tu en disant mysql ?
|
|
| |
|