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
Configuration: Windows XP
Firefox 2.0.0.11

32 réponses

  • 1
  • 2
Résumé de la discussion

La discussion porte sur la mise en place d'un formulaire web permettant d'enregistrer des données dans une base et de les afficher puis de les modifier, ainsi que l'ajout éventuel de photos. Plusieurs intervenants recommandent d'utiliser des sessions plutôt que GET pour l'identification et d'éviter les cookies non sécurisés, afin de limiter les risques lors de l'affichage et modification des données. Les échanges présentent aussi des propositions de code, notamment la récupération des données via des requêtes protégées (mysql_real_escape_string) et le peuplement des champs du formulaire avec les valeurs extraites. En parallèle, des avertissements signalent des erreurs telles que des ressources MySQL invalides et suggèrent des structures simples (table membres avec id, login, nom) et une récupération conditionnelle via l'identifiant.

Bobot (l'IA à votre service)
  1. ekudarius Messages postés 175 Statut Membre 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
    1. 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
  2. ekudarius Messages postés 175 Statut Membre 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
    1. 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
  3. Rémy
     
    Cette erreur signifie que ta requête sql est incorrecte. Qu'as-tu dans ton mysql_query ??
    0
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. letoine Messages postés 1624 Statut Membre 320
     
    Déjà rajoute
    or die('Erreur SQL '.mysql_error());
    a la fin de tes requettes ca permet de mieux comprendre les erreurs
    0
  7. 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
  8. letoine Messages postés 1624 Statut Membre 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
    1. 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
  9. letoine Messages postés 1624 Statut Membre 320
     
    Euh fait un ptit screen de ta table ok ?
    0
  10. 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
  11. 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
  12. letoine Messages postés 1624 Statut Membre 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
  13. 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
  14. letoine Messages postés 1624 Statut Membre 320
     
    euH tu peux être plus clair 0.o ?
    0
  15. 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
  16. 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
  17. letoine Messages postés 1624 Statut Membre 320
     
    Ok...

    Tu as un formulaire en get ou en post ?
    0
  18. 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
  19. php180
     
    le formulaire est en post et le bouton est un submit
    0
  20. ekudarius Messages postés 175 Statut Membre 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
  • 1
  • 2