Php récupération des données

php180 -  
 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
A voir également:

32 réponses

ekudarius Messages postés 175 Date d'inscription   Statut Membre Dernière intervention   51
 
Salut,

va voir ce tuto et tu comprendra tout :

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

Bonne chance dans le php bye
0
php180
 
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?
0
ekudarius Messages postés 175 Date d'inscription   Statut Membre Dernière intervention   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.
0
php180
 
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.
0
Rémy
 
Cette erreur signifie que ta requête sql est incorrecte. Qu'as-tu dans ton mysql_query ??
0
php180
 
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
letoine Messages postés 1384 Date d'inscription   Statut Membre Dernière intervention   320
 
Déjà rajoute
or die('Erreur SQL '.mysql_error());
a la fin de tes requettes ca permet de mieux comprendre les erreurs
0
Rémy
 
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 !...
0
letoine Messages postés 1384 Date d'inscription   Statut Membre Dernière intervention   320
 
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());
0
php180
 
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?
0
letoine Messages postés 1384 Date d'inscription   Statut Membre Dernière intervention   320
 
Euh fait un ptit screen de ta table ok ?
0
Rémy
 
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 ?? ;-)
0
php180
 
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?
0
letoine Messages postés 1384 Date d'inscription   Statut Membre Dernière intervention   320
 
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 ?
0
php180
 
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.
0
letoine Messages postés 1384 Date d'inscription   Statut Membre Dernière intervention   320
 
euH tu peux être plus clair 0.o ?
0
Rémy
 
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...
0
php180
 
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.
0
letoine Messages postés 1384 Date d'inscription   Statut Membre Dernière intervention   320
 
Ok...


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

C'est TRES flou !
0
php180
 
le formulaire est en post et le bouton est un submit
0
Rémy
 
c'est un bon point !!
0
ekudarius Messages postés 175 Date d'inscription   Statut Membre Dernière intervention   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();
} ?>
0