Php récupération des données

Fermé
Signaler
-
 Rémy -
Bonjour,
J'expose la situation, sur mon site je veux faire un formulaire, où les gens pourrons mettre des données mais le problème c'est que je n'arrive pas à les afficher pour qu'il puisse les remodifier. Un peu comme un blog. Par contre les données sont bien visible dans ma BD. Ceci est mon premier probleme. J'aimerais aussi qu'il puisse insérer des photos mais je n'arrive pas a trouver le code. Merci

32 réponses

Messages postés
174
Date d'inscription
mercredi 21 février 2007
Statut
Membre
Dernière intervention
21 mai 2008
51
Salut,

va voir ce tuto et tu comprendra tout :

https://openclassrooms.com/fr/courses#ss_part_2

Bonne chance dans le php bye
Merci ekudarius pour le tuto il m'a permis de mieux comprendre pour utiliser la BD malheureusement je n'arrive pas a faire correspondre la récupération de donné et le formulaire. J'arrive a afficher les données mais pas dans les cases du formulaire correspondant. A tu une idée?
Messages postés
174
Date d'inscription
mercredi 21 février 2007
Statut
Membre
Dernière intervention
21 mai 2008
51
Ok bon sa va ètre dur mais en éspérant que t'es pas un débutant de 1° en php voici un exemple :

<?php
// Initialisation des varibles :
$pseudo = '';
$pass = '';


mysql_connect("hote", "login", "pass"); // Connexion à MySQL
mysql_select_db("nom_bdd"); // Sélection de la base coursphp

$id = $_GET['id']; // Id envoyé par une autre page

$reponse = mysql_query("SELECT * FROM membres WHERE jour='".mysql_real_escape_string($id)."'"); // Requête SQL en cherchant les infos correspondant à l'id

while ($donnees = mysql_fetch_array($reponse) )
{
$pseudo = stripslashes($donnees['pseudo']);
$pass = stripslashes($donnees['pass']);
?>

<input type="text" size="30" name="pseudo" value="<?php echo $pseudo; ?>" />
<input type="text" size="30" name="pass" value="<?php echo $pass; ?>" />

<?php
}
mysql_close(); // Déconnexion de MySQL
?>

N'hésite pas à demander si des parties ne sont pas comprises.
Re bonjour,

Alors voila j'ai adapté ton exemple a mon formulaire mais quand j'essaye il m'affiche l'erreur :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\projet\formulaire\AUTHENTIFICATION\formulaire.php on line 14

et la ligne 14 correspond à :

while ($donnees = mysql_fetch_array($reponse) ).

Voila en attendant vos réponse je continu à chercher la solution.
Cette erreur signifie que ta requête sql est incorrecte. Qu'as-tu dans ton mysql_query ??
bonjour, je ne c'est pas si c'est cela que tu demande :
$reponse = mysql_query("SELECT * FROM formulaire WHERE jour='".mysql_real_escape_string($id)."'");

formulaire se trouve dans db_form et contient nom et prénom (si déjà je peux les réafficher a chaque fois qu'une personne reviens dessus je pourrais mettre plus d'infos).

Sinon je suis en train d'essayer autrement façon blog des fois que ça marcherais :d.
Messages postés
1382
Date d'inscription
dimanche 5 août 2007
Statut
Membre
Dernière intervention
31 mai 2015
312
Déjà rajoute
or die('Erreur SQL '.mysql_error());
a la fin de tes requettes ca permet de mieux comprendre les erreurs
Pour moi, l'erreur vient de ton mysql_real_escape_string($id). A quoi correspond ton $id ??

Mais effectivement, suis d'abord les conseils de letoine, ça t'aiguillera sur ton erreur !...
Messages postés
1382
Date d'inscription
dimanche 5 août 2007
Statut
Membre
Dernière intervention
31 mai 2015
312
Oui essaye plutot

$id = mysql_real_escape_string($_GET['id']); // Id envoyé par une autre page
$reponse = mysql_query("SELECT * FROM membres WHERE jour='$id'") or die('Erreur SQL '.mysql_error());
Merci letoine
avec ce que tu a dis cela marche sans erreure mais les données ne sont toujours pas visible après la validation.
Même si je revient a l'accueil pour aller sur le formulaire, et les réponses ne sont toujours pas présente.
Des idées?
Messages postés
1382
Date d'inscription
dimanche 5 août 2007
Statut
Membre
Dernière intervention
31 mai 2015
312
Euh fait un ptit screen de ta table ok ?
LOGIQUE !

La requete que vient de te filer letoine est un SELECT.
Il te faut un INSERT INTO auparavent, sinon, bah... ya rien dans ta table.

Compris ?? ;-)
Je met :

mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("dbprotect"); // Sélection de la base coursphp

INSERT INTO membres (nom, prenom) VALUES ('$nom', '$prenom');

$id = mysql_real_escape_string($_GET['id']); // Id envoyé par une autre page
$reponse = mysql_query("SELECT * FROM chambre WHERE nom='$id'") or die('Erreur SQL '.mysql_error());

est ce bon comme ça? ou faut il préciser un truc avant?
Messages postés
1382
Date d'inscription
dimanche 5 août 2007
Statut
Membre
Dernière intervention
31 mai 2015
312
Oui mais tu vois je pense qu'il a déjà un autre formulaire avec un insert into...

Ca c'est juste pour lire nan ?
enfet c'est un formulaire quand on valide on est encore sur le même formulaire et je voudrais que les données soit visibles dedans celons le formulaire choisit.
Messages postés
1382
Date d'inscription
dimanche 5 août 2007
Statut
Membre
Dernière intervention
31 mai 2015
312
euH tu peux être plus clair 0.o ?
euh, non, pas du tout !!

mysql_connect("localhost", "root", ""); // Connexion à MySQL 
mysql_select_db("dbprotect"); // Sélection de la base coursphp 

$prenom=$_POST["prenom"];//ou GET, si t'as fait un GET
$nom=$_POST["nom"];//ou GET, si t'as fait un GET

mysql_query("INSERT INTO membres (nom, prenom) VALUES ('$nom', '$prenom');"); 

$id = mysql_real_escape_string($_GET['id']); // Id envoyé par une autre page 
$reponse = mysql_query("SELECT * FROM chambre WHERE nom='$id'") or die('Erreur SQL '.mysql_error()); 


J'espere que tu a aussi mis un bouton 'submit' et que tu t'es pas gourré sur "l'action" de ton 'form'.

Sinon, je te renvoie aux tutos...
alors pour tous expliquer j'ai un premier login avec comptes clients et un admin (avec l'admin je peux rajouter des comptes clients).
Les comptes clients une fois loger peuvent voir les données rentrées au préalables par l'admin ou peuvent rentrer dans un ou plusieurs formulaire le nom et prénom (un peut comme un annuaire de contactes).
Et je voudrais que selon le formulaire choisit il retrouvent les données qu'il avait déjà mises ainsi ils pourront remodifier ces données.
Pour cela j'ai deux base de données 1 pour ajouter des comptes clients avec leur données perso et une pour les clients(membres) ou sont les infos qu'ils rentres.
Messages postés
1382
Date d'inscription
dimanche 5 août 2007
Statut
Membre
Dernière intervention
31 mai 2015
312
Ok...


Tu as un formulaire en get ou en post ?
Alors, là je perds complétement le fil avec tes histoire de plusieurs formulaires, plusieurs bases de données...

C'est TRES flou !
le formulaire est en post et le bouton est un submit
c'est un bon point !!
Messages postés
174
Date d'inscription
mercredi 21 février 2007
Statut
Membre
Dernière intervention
21 mai 2008
51
Déja il te faut une table nommé membres par exemple.
Dans cette table il te faut les variables id, login, pass, nom, prénom, proffesion.
Lorsqu'une personne se co sur son compteil faut récupérer son id puis l'envoyer sur toutes les pages ou que celle du formulaire parlé pour se rappeler de la personne. Voir :

Ensuite sur ta page de formulaire tu récupère l'id du membre qui est conecté :https://openclassrooms.com/fr/courses#ss_part_4

$id = $_GET['id'];

après tu va dans ta base de données puis tu récupère les infos de la personnes par raport à son id :

mysql_connect("hote", "login", "pass");
mysql_select_db("bdd");
$retour = mysql_query("SELECT * FROM membres WHERE id='".mysql_real_escape_string($id)."' ");

Puis la tu boucle en en affichant dans ton formulaire les données que tu souhaite :

<input type="text" size="30" name="login" value="<?php echo $donnees['login']; ?>" />
<input type="password" size="30" name="pass" value="<?php echo $donnees['pass']; ?>" />
<input type="text" size="30" name="nom" value="<?php echo $donnees['nom']; ?>" />
<input type="text" size="30" name="prénom" value="<?php echo $donnees['prénom']; ?>" />
<input type="text" size="30" name="profesion" value="<?php echo $donnees['profesion']; ?>" />

Et voici ce que je te propose en final (à améliorer suivant tes besoin :P) :

<?php mysql_connect("hote", "login", "pass");
mysql_select_db("bdd");
$retour = mysql_query("SELECT * FROM riom WHERE jour='".mysql_real_escape_string($page)."' ORDER BY heure");
$id = '0';

if (isset($_GET['id']))
{
$id = $_GET['id'];
while ($donnees = mysql_fetch_array($retour))
{ ?>

<input type="text" size="30" name="login" value="<?php echo $donnees['login']; ?>" />
<input type="password" size="30" name="pass" value="<?php echo $donnees['pass']; ?>" />
<input type="text" size="30" name="nom" value="<?php echo $donnees['nom']; ?>" />
<input type="text" size="30" name="prénom" value="<?php echo $donnees['prénom']; ?>" />
<input type="text" size="30" name="profesion" value="<?php echo $donnees['profesion']; ?>" />
<?php }
mysql_close();
} ?>