Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/06/2007, 13h07   #1
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 50
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 50
Points : 14
Points : 14
Par défaut Modifier un formulaire

Bien le bonjour a vous, developpeur

Voila voulant poursuivre tout seul, et en apprenant par moi meme, le php.

Voila en fait mon probleme, c'est que j'ai un petit formulaire qui me a un champ text uniquement. Pas de titre, rien du tout, juste un message.

Et ce message en fait j'aimerais qu'il s'affiche sur ma page principal du site. Pour cela je fais un mysql select etc...

Et le truc c'est que je veux modifier ce texte en ligne, donc dans la partie admin. Je veux utiliser le formulaire, cliquer sur modifier et faire un mysql update, si j'ai bien compris.

Mais le probleme c'est que je comprends pas trop comment faire pour que quand je clique sur modifier sa me fait un mysql update.

Merci d'avance
GomuSan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 13h18   #2
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 571
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 571
Points : 2 511
Points : 2 511
Salut, et bienvenue sur le forum

Avant de poster sur le forum, tu peux jeter un oeil dans les tutoriaux et la FAQ :
- http://g-rossolini.developpez.com/tu...aires-et-php5/
- http://julp.developpez.com/php/formulaires/
- http://php.developpez.com/faq/?page=...s_verifsaisies

Bon développement
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 13h20   #3
Membre du Club
 
Inscription : mai 2007
Messages : 127
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 127
Points : 43
Points : 43
Hello !
En fait tu fait un formulaire normal, avec method="post" action="tapage.php"
avec le champ textarea name='tonchamps' et un champs hidden 'tonID' qui contient l'id (auto incremenent dans mysql) de la ligne que tu veux modifier.

et dans tapage.php tu récupere la valeur du champs par $_POST['tonchamp'], que tu met dans mysql avec cette requete :

mysql_query ("UPDATE `tatable` SET `tonchamps`='".mysql_real_escape_string($_POST['tonchamp'])."' WHERE `tonID`=".mysql_real_escape_string ($_POST['tonId']).";");

et ca devrait etre bon.

Voila, en esperant que ca t'aide
codefalse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 13h30   #4
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 50
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 50
Points : 14
Points : 14
Merci bien mais en fait je crois pas avoir besoin d'un id, puisque il n' y aura qu'un seul champ message.

Je vais tester

EDIT : quand tu dis tapage.php, c'est la page ou je modifie le champ ? ou celle ou sa va s'afficher
GomuSan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 13h46   #5
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 50
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 50
Points : 14
Points : 14
Voila j'ai fait sa :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
   <?php
	mysql_connect("localhost", "root", "");
	mysql_select_db("gomu-house");
 
	$retour = mysql_query('SELECT * FROM infos');
	while ($donnees = mysql_fetch_array($retour)) {
		 echo $donnees['message']; 
	}
 
	echo "Le Modifier ?";	
?>
 
	<form method="post" action="admin/index.php">
 
<p>
    <textarea name="message" rows="8" cols="45">
		<?php echo $donnees[message]; ?>
	</textarea>
	<input type="submit" value="Modifier" />
</p>
<?php
if (!isset($_POST['message'])) {
	mysql_query ("UPDATE `infos` SET `message`='".mysql_real_escape_string($_POST['message']).";");
} else {
	echo "Le champ est vide !";
  }
?>
Qu'en penses tu ?
GomuSan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 14h02   #6
Membre du Club
 
Inscription : mai 2007
Messages : 127
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 127
Points : 43
Points : 43
Ce que j'en dit
Apparement, ton
Code :
while ($donnees = mysql_fetch_array($retour))
laisse croire que tu a plusieurs lignes dans ta table infos, hors ce n'est peut-être pas le cas.

Donc deux possibilités:
Si c'est le cas, ta fonction
Code :
mysql_query ("UPDATE `infos` SET `message`='".mysql_real_escape_string($_POST['message']).";");
va modifier par $_POST['message'] toutes tes lignes par la même valeur (d'où le fait qu'il fallait un Id.

Si tu n'utilise qu'une seule ligne, alors tu n'a juste à faire
Code :
$donnees = mysql_fetch_array($retour)
(sans le while), puis ton update sera a peu pres correct (vaut mieux toujours préférer mettre un Id au cas ou)

Par contre $donnees[message]; ne marchera pas, il faut que tu mette $donnees['message'];

Je fait expres de ne pas t'en donner trop histoire que tu cherche de toi même et que tu comprenne mieux ton soucis
codefalse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 14h28   #7
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 50
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 50
Points : 14
Points : 14
Je suis toujours en galere lol.

J'ai modifié et j'ai sa maintenant

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
	mysql_connect("localhost", "root", "");
	mysql_select_db("gomu-house");
 
	$retour = mysql_query('SELECT * FROM infos');
	$donnees = mysql_fetch_array($retour);
		 echo $donnees['message']; 
 
 
	echo "Le Modifier ?";	
	$contenu = stripslashes($donnees['message']);
 
 
if (isset($_POST['message']) and !empty($_POST['message'])) {
	mysql_query ("UPDATE `infos` SET `message`='".mysql_real_escape_string($_POST['message']).";");
} else {
	echo "Le champ est vide !";
  }
 
?>
 
	<form method="post" action="index.php">
 
<p>
    <textarea name="message" rows="8" cols="45">
		<?php echo $contenu; ?>
	</textarea>
	<input type="submit" value="Modifier" />
</p>
Quand je vais dans la partie admin pour modifier. Je change le texte mais il le modifie pas, par contre sur la page principal j'ai le texte qui est affiché, donc sa deja c'est bon. Et dans la partie admin, il me met champ vide alors qu'il y a quelques chose. Pas logique

Je suis vraiment obligé de mettre un id ?

Merci beaucoup codefalse. je ne veux pas la solution mais je veux trouver tout seul juste un autre indice stp. qui pourra m'aider

Merci de ta patience
GomuSan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 14h54   #8
Membre du Club
 
Inscription : mai 2007
Messages : 127
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 127
Points : 43
Points : 43
ton
echo $donnees['message'];

n'affiche rien ?
alors que sur la page d'accueil il affiche quelque chose ?
codefalse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 15h53   #9
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 50
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 50
Points : 14
Points : 14
Si sur la page d'accueil et l'admin mon
Code :
echo $donnees['message'];
m'affiche le message mais c'est quand je veux modifier que sa modifie pas
GomuSan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 16h02   #10
Membre du Club
 
Inscription : mai 2007
Messages : 127
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 127
Points : 43
Points : 43
mais ton textarea contient bien le texte ?
codefalse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 16h57   #11
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 50
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 50
Points : 14
Points : 14
Oui tout est affiché. c'est que la modif qui marche pas
GomuSan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 17h02   #12
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Il manque la quote fermante délimitant la nouvelle valeur de ton message dans ta requete d'update.

Ton mysql_query() échoue surement, si tu ajoutais un test de vérification tu éviterais ce genre de problemes...
Code :
	mysql_query ("UPDATE `infos` SET `message`='".mysql_real_escape_string($_POST['message'])."';") or die("Erreur mysql : ". mysql_error());
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 17h14   #13
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 50
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 50
Points : 14
Points : 14
Sa marche !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Merci beaucouppppppppppppppppp !! après un dur travail l'erreur est corrigé alors que c'etait une erreur de merde lol.

Merci beaucoup !! pour votre aide.

Je suis trop content mon premier "script" réalisé par moi meme.
GomuSan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h14.


 
 
 
 
Partenaires

Hébergement Web