Récupération de données d'un table dans un formulaire pour modification [Résolu]

cs_Frosch 3 Messages postés jeudi 10 avril 2003Date d'inscription 3 août 2010 Dernière intervention - 31 juil. 2010 à 00:55 - Dernière réponse : cs_Frosch 3 Messages postés jeudi 10 avril 2003Date d'inscription 3 août 2010 Dernière intervention
- 3 août 2010 à 14:30
Bonjour à tous,

Voila maintenant plusieurs jours que je galère avec une question qui n'a pas l'air d'en être une mais je coince.

Je parviens à récupérer et afficher les données à modifier d'une fiche depuis ma table sql mais je ne parviens pas à les insérer dans les champs de mon formulaire qui restent vides et que je souhaiterai voir pré-remplis. La chose parait très simple mais je ne sait pas pourquoi je n'y arrive pas
je vous donne une partie du code, si une bonne âme peut éclairer ma lanterne.
je suis également preneur de tous conseils notamment sur la sécurité.

d'avance merci.

<?php
// on s'assure que c'est bien l'administrateur qui doit taper son mot de passe
include "xxxxxxx.php";
// ici commence la récupération des informations sur la base, table etc...
include "../infobase.php";
// on se connecte à la base de donnée Mysql
$dbconnect = mysql_connect($host,$login,$pass) or die ("erreur de connexion");
// on sélectionne la base
mysql_select_db($db,$dbconnect) or die ("erreur de connexion base");
$modfiche=$_GET['modfiche'];
// on prépare la requête dans la table en ne sélectionnant que la fiche à modifier grâce à modfiche
$affiche_fiche="SELECT * FROM $table WHERE id='$modfiche' ";
// on exécute la requête
$req = mysql_query($affiche_fiche) or die ("erreur sql
\n");
// on ferme la base
mysql_close();
// on sélectionne les colonnes num,crea,nom,email,tel,photo... de la table qu'on affiche
while ( $resultat = mysql_fetch_array($req))
{
echo "";
echo "
";
echo "\";
echo \"FICHE A MODIFIER

\";
echo \"----
";
echo "";
echo "FICHE N°$resultat[num] - Enregistré(e) le $resultat[crea]

, \";
echo \"----
, \";
echo \"";
echo "nom:";
echo "$resultat[nom]";
echo "Prénom : $resultat[prenom]";
echo "
";
echo "Téléphone : $resultat[tel]";
echo ", \";
echo \"\";
echo \"\";
echo "

";
}
?>
<!-- on affiche la page -->
<html>
<head>
<!-- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -->
<!-- <meta name="GENERATOR" content=""> -->

<title>Modification d'une fiche d'un membre du PPB13</title>
<link rel="stylesheet" type="text/css" href="../site.css" />
</head>

Modifiez le formulaire

<form id="SITEFOrm" method="post" action="soumettremodif.php" enctype="multipart/form-data">
<fieldset>
<legend>Informations</legend>

<!-- on affiche le champ nom dans lequel on met la valeur déjà entrée -->
<label for="form_nom">Nom : </label>
"/>


</td>
</tr>
<tr>
<td>

<!-- on affiche le champ prénom dans lequel on met la valeur déjà entrée -->
<label for="form_prenom">Prénom : </label>
"/>


</td>
</tr>
<tr>
<td>


etc................
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
mailliam 262 Messages postés mardi 2 juillet 2002Date d'inscription 10 mars 2014 Dernière intervention - 31 juil. 2010 à 18:48
3
Merci
Tchô,

moi dans la partie php au lieu par exemple de:
echo "FICHE N°$resultat[num] - Enregistré(e) le $resultat[crea]";
J'écrirais comme ca:
echo 'FICHE N°'.$resultat[num].' - Enregistré(e) le '.$resultat[crea];

et pour la partie html, à mon avis ca me marche pô car tes variables sont hors de ta boucle while:
enlève la } et ajoute <? } ?> après la dernière variable..

Je n'sais pas si j'ai raison, mais c'est d'après moi la seule erreur..
Tu m'diras si ca marche
A++

Merci mailliam 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 81 internautes ce mois-ci

Commenter la réponse de mailliam
mailliam 262 Messages postés mardi 2 juillet 2002Date d'inscription 10 mars 2014 Dernière intervention - 31 juil. 2010 à 18:55
0
Merci
oups attends j'crois que j'ai pas tout bien lu là..
c'est un même fichier .php ou c'est une page.php et une page.html dans 2 fichiers distincts??

car tu mets
echo "</table>

";
}
?>
<!-- on affiche la page -->
<html>
<head>

je comprend pas bien ce que tu veux faire :/
Commenter la réponse de mailliam
cs_Frosch 3 Messages postés jeudi 10 avril 2003Date d'inscription 3 août 2010 Dernière intervention - 2 août 2010 à 01:12
0
Merci
D'abord un grand merci avoir pris le temps de répondre

bon ca doit surement pas se faire mais c'est une page php dans laquelle je met du code html après ma balise ?> et c'est bien le même fichier.

J'ai repris le formulaire de création de fiche qui est formaté par du CSS et je voulais alimenter ce formulaire par les données de la fiche sélectionnée mais ils sont vides.

je changerai la syntaxe des variables mais cette partie fonctionne très bien. J'ai bien l'affichage de mes données.

Tu dois avoir raison pour la bouche while. Je ferai le test Lundi soir et te dirais ce qu'il en ressort.
Commenter la réponse de cs_Frosch
mailliam 262 Messages postés mardi 2 juillet 2002Date d'inscription 10 mars 2014 Dernière intervention - 2 août 2010 à 10:08
0
Merci
Re,
oui tu peux mettre du code html dans une page .php, mais faut pas remettre tout l'entête (<html><head>...) au milieu de la page, faut juste le mettre au début (même si tu commence tout de suite en .php)
taPage.php donnera qque chose comme ca:

<html>
<head>
<LINK REL="SHORTCUT ICON" HREF="site.ico"><!-- si tu veux mettre une icone a ton site -->
<title>Modification d'une fiche d'un membre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="../site.css" />
</head>

<?php
// on s'assure que c'est bien l'administrateur qui doit taper son mot de passe
include "xxxxxxx.php";
// ici commence la récupération des informations sur la base, table etc...
include "../infobase.php";
// on se connecte à la base de donnée Mysql
$dbconnect = mysql_connect($host,$login,$pass) or die ("erreur de connexion");
// on sélectionne la base
mysql_select_db($db,$dbconnect) or die ("erreur de connexion base");
$modfiche=$_GET['modfiche'];
// on prépare la requête dans la table en ne sélectionnant que la fiche à modifier grâce à modfiche
$affiche_fiche="SELECT * FROM $table WHERE id='$modfiche' ";
// on exécute la requête
$req = mysql_query($affiche_fiche) or die ("erreur sql 
\n");
// on ferme la base
mysql_close();
// on sélectionne les colonnes num,crea,nom,email,tel,photo...
//et on les affiche dans la boucle
while ( $resultat = mysql_fetch_array($req))
{
// ci-dessous tu reviens en html (tu n'as pas besoin de mettre de balise <html> il y a juste fin de php
?>


<?
//pour afficher tes variables, soit en php comme ceci: echo 'le code html'.$resultat[num] ;
echo 'FICHE N°'.$resultat[num].' - Enregistré(e) le '.$resultat[crea];
?>
<!-- soit en html avec juste les balises php autour de la variable comme cela: <? echo $resultat[photo] ?> -->
, '>




<!-- on affiche le formulaire (comme sur la page .html) -->

Modifiez le formulaire

<form id="SITEFOrm" method="post" action="soumettremodif.php" enctype="multipart/form-data">
<fieldset>
<legend>Informations</legend>

<!-- on affiche le champ nom dans lequel on met la valeur déjà entrée -->
<label for="form_nom">Nom : </label>
"/>



<!-- on affiche le champ prénom dans lequel on met la valeur déjà entrée -->
<label for="form_prenom">Prénom : </label>
"/>


<? //tu dois repasser en php pour fermer ta boucle while
}
?>


</html>


bon faut revoir un peu la mise en page, j'ai enlevé des <table><tr>.. et j'ai pas tout remis je crois lol
Commenter la réponse de mailliam
narkos2 10 Messages postés dimanche 16 novembre 2008Date d'inscription 2 septembre 2010 Dernière intervention - 2 août 2010 à 11:14
0
Merci
Hello,

Heu pour afficher les valeurs dans les input comme voulu sur cette ligne:
<?php
"/>
?>

Plutôt comme ça:
<?php
"/>
?>


Ou sinon si le nom du champ mysql serait contenu dans une variable:
<?php
$le_champ = "prenom";
"/>
?>


Sinon la structure de la page n'a pas l'air top, essayer de repartir au propre sur une autre page ou prend exemple sur celle présentée par "mailliam"...

Bonne continuation
Commenter la réponse de narkos2
narkos2 10 Messages postés dimanche 16 novembre 2008Date d'inscription 2 septembre 2010 Dernière intervention - 2 août 2010 à 11:20
0
Merci
Oups j'ai mis des <?php ?> pour chaque code ;)

Je remet le message propre dsl ;)

Hello,

Heu pour afficher les valeurs dans les input comme voulu sur cette ligne:

"/>



Plutôt comme ça:

"/>




Ou sinon si le nom du champ mysql serait contenu dans une variable(on sait jamais lol):

<?php
$le_champ = "prenom";
?>
"/>




Sinon la structure de la page n'a pas l'air top, essayer de repartir au propre sur une autre page ou prend exemple sur celle présentée par "mailliam"...

Bonne continuation
Commenter la réponse de narkos2
cs_Frosch 3 Messages postés jeudi 10 avril 2003Date d'inscription 3 août 2010 Dernière intervention - 3 août 2010 à 14:30
0
Merci
@mailliam
Bien joué pour le coup de <? } ?> parce que c'est bon, j'ignorai qu'une fois la boucle refermée les variables sont vides tout simplement (je vais me pencher à nouveau sur le sujet) alors que je pensais qu'elle étaient déclarées pour toute la page.
Merci pour le reste de tes explications c'est clair et finalement très utile.
Je vais refaire tout cela dans un style plus propre...

ne t'inquiète pas pour la mise en page je m'en sortirai et puis c'est pas un truc pro qui sera géré par une seule personne, le but étant qu'elle n'ai pas à utiliser phpmyadmin et modifier la base en direct. En bref si c'est fonctionnel je ne vais pas me torturer pour le rendu.

@Narkos2
Merci pour ton aide également

Et bonne fin de semaine...
Commenter la réponse de cs_Frosch

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.