IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

remplir ma BDD


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 51
    Par défaut remplir ma BDD
    bonjour, un formulaire me permet de remplir avec nom prenom etc ma BDD, puis dans une autre page je peux accéder à la liste de tous ces noms et prénoms, cette page contient également un formulaire me permettant de mettre un commentaire pour chaque personne.

    Mon problème est le suivant : lorsque je mets un commentaire devant une personne, il s affiche pour toutes les personnes, je pense que le souci vient de ma boucle mais je n arrive pas à le trouver!

    pouvez vous m'aider?
    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    <table>
    // début de la boucle permettant d afficher tous les messages les uns à la suite des autres
    <?php
    $retour = mysql_query('SELECT * FROM client ORDER BY id_client DESC');
    while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
    {
    $prenom = addslashes ($donnees['prenom']);
    $nom = addslashes($donnees['nom']);
     
    ?>
     
    <tr>
    <td><?php echo '<a href="liste_messages_clients.php?supprimer_news=' . $donnees['id_client'] . '">'; ?>Supprimer</a></td>
    <td><?php echo stripslashes($donnees['nom']); ?></td>
    <td><?php echo stripslashes($donnees['prenom']); ?></td>
    <td>0<?php echo stripslashes($donnees['telephone']); ?></td>
    <td><?php echo stripslashes($donnees['societe']); ?></td>
    <td><?php echo stripslashes($donnees['email']); ?></td>
     
    <td rowspan="3" align="center" valign="middle"> 
    //formulaire permettant d'ajouter un com qui sera enregistré dans la BDD
    <form method="post" action="liste_messages_clients.php">
      <p>&nbsp;  </p>
      <p> </p>
        <input type="text" name="lu" value="répondre par OUI ou NON"/> 
     
     
        <input type="submit" name="ok" value="OK"/>
     
     
    </form> <p>message lu? : <?php echo $_POST['lu']; ?></p> </td>
     
    //mise à jour de la BDD
    <?php
    if(isset($_POST['lu']) ) 
    {
     
    $lu = addslashes($_POST['lu']);
    mysql_query( "UPDATE client SET mess_lu = '".$lu."' WHERE nom='".$nom."' AND prenom='".$prenom."'"); 
     
    }
    ?> 
     
    <td rowspan="3" align="center" valign="middle">
     
     
    </td>
    </tr>
    <tr>
    <td colspan="3"><span class="Style5"><strong><u>Objet</u> : </strong></span><?php echo stripslashes($donnees['objet']); ?></td>
    <td colspan="3"> <span class="Style5"><u><strong>Date</strong></u><strong> :</strong></span> <?php echo date('d/m/Y H\hi'); ?></td>
    </tr>
    <tr>
    <td colspan="6"><span class="Style5"><strong><u>Message</u> :</strong></span><?php echo stripslashes($donnees['corps_mess']); ?></td>
    </tr>
     
    <?php
    } // Fin de la boucle qui liste les messages
    ?>
    </table>

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 194
    Par défaut
    bonjour,

    il faut faire passer dans ton form, des info pour ton update.

    du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    action="page.php?nom=$nom&&prenom=$prenom
    que tu récupère dans ton update, afin d'indiquer la ligne que tu veux mettre a jour.

    Yasen77

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    199
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 199
    Par défaut
    Je pense que c´est pas super logique de mettre ton formuliare dans ton while...
    Tu peux expliquer plus précisément ce que tu veux faire ?
    Car la en gros, tu fais afficher tous les utilisateurs, avec un formulaire pour chaque, mais du coup tes infos POST sont changes, de plus et je pense que ton probleme est la surtout : $nom et $prenom tu les affectes jamais...
    Du coup ca affiche partout.
    Ce serait mieu d´utiliser ton id que nom prenom. Un seul champ, clef primaire.

    Hesite pas avec juste un poil plus d´explications.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 51
    Par défaut
    merci pour ta réponse,j'ai fait ce que tu m'as dit, mais cela ne fonctionne toujours pas (toutes les lignes ont le meme commentaire)
    peut etre ai-je mal compris ton post (je suis débutante!)

    je te remets mon code, j ai juste modifié le <form action="">

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?php
    $retour = mysql_query('SELECT * FROM client ORDER BY id_client DESC');
    while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
    {
    $prenom = addslashes ($donnees['prenom']);
    $nom = addslashes($donnees['nom']);
     
    ?>
     
    <tr>
    <td><?php echo '<a href="liste_messages_clients.php?supprimer_news=' . $donnees['id_client'] . '">'; ?>Supprimer</a></td>
    <td><?php echo stripslashes($donnees['nom']); ?></td>
    <td><?php echo stripslashes($donnees['prenom']); ?></td>
    <td>0<?php echo stripslashes($donnees['telephone']); ?></td>
    <td><?php echo stripslashes($donnees['societe']); ?></td>
    <td><?php echo stripslashes($donnees['email']); ?></td>
     
    <td rowspan="3" align="center" valign="middle"> 
    <form method="post" action="liste_messages_clients.php?nom=$nom&&prenom=$prenom">
      <p>&nbsp;  </p>
      <p> </p>
     
     
        <input type="text" name="lu" value="répondre par OUI ou NON"/> 
     
     
        <input type="submit" name="ok" value="OK"/>
     
     
    </form> <p>message lu? : <?php echo $_POST['lu']; ?></p> </td>
     
     
    <?php
    if(isset($_POST['lu']) ) 
    {
     
     
    $lu = addslashes($_POST['lu']);
    mysql_query( "UPDATE client SET mess_lu = '".$lu."' WHERE nom='".$nom."' AND prenom='".$prenom."'"); 
        // echo $donnees['mess_lu'];     
    }
    ?>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 51
    Par défaut
    juju03, au début j avais fait avec l'id mais rien ne s affichait, car je n arrive pas à le récupérer en fait (je suis débutante!) du coup je m étais rabattue sur les noms et prénoms.

    pour les explications supplémentaires, je ne sais pas trop quoi te dire :
    en gros ma page ressemble à ca : (cf piece jointe)

    c est pour ca que j ai mis mon formulaire dans le WHILE pour qu'il y ait des petits boutons OK et des cases à remplir pour chaque message...

    je te remets mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?php
    $retour = mysql_query('SELECT * FROM client ORDER BY id_client DESC');
    while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
    {
    $prenom = addslashes ($donnees['prenom']);
    $nom = addslashes($donnees['nom']);
     
    ?>
     
    <tr>
    <td><?php echo '<a href="liste_messages_clients.php?supprimer_news=' . $donnees['id_client'] . '">'; ?>Supprimer</a></td>
    <td><?php echo stripslashes($donnees['nom']); ?></td>
    <td><?php echo stripslashes($donnees['prenom']); ?></td>
    <td>0<?php echo stripslashes($donnees['telephone']); ?></td>
    <td><?php echo stripslashes($donnees['societe']); ?></td>
    <td><?php echo stripslashes($donnees['email']); ?></td>
     
    <td rowspan="3" align="center" valign="middle"> 
    <form method="post" action="liste_messages_clients.php?nom=$nom&&prenom=$prenom">
      <p>&nbsp;  </p>
      <p> </p>
     
     
        <input type="text" name="lu" value="répondre par OUI ou NON"/> 
     
     
        <input type="submit" name="ok" value="OK"/>
     
     
    </form> <p>message lu? : <?php echo $_POST['lu']; ?></p> </td>
     
     
    <?php
    if(isset($_POST['lu']) ) 
    {
     
     
    $lu = addslashes($_POST['lu']);
    mysql_query( "UPDATE client SET mess_lu = '".$lu."' WHERE nom='".$nom."' AND prenom='".$prenom."'"); 
        // echo $donnees['mess_lu'];     
    }
    ?>
    merci beaucoup!
    Images attachées Images attachées  

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 194
    Par défaut
    comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <form method="post" action="<? echo 'liste_messages_clients.php?nom='.$nom.'&&prenom='.$prenom.'; ?>">
      <p>&nbsp;  </p>
      <p> </p>
     
     
        <input type="text" name="lu" value="répondre par OUI ou NON"/> 
     
     
        <input type="submit" name="ok" value="OK"/>
     
     
    </form> <p>message lu? : <?php echo $_POST['lu']; ?></p> </td>
     
     
    <?php
    if(isset($_POST['lu']) ) 
    {
    $nom = @$_GET['nom'];
    $prenom = @$_GET['prenom'];
    $lu = addslashes($_POST['lu']);
    mysql_query( "UPDATE client SET mess_lu = '".$lu."' WHERE nom='".$nom."' AND prenom='".$prenom."'"); 
        // echo $donnees['mess_lu'];     
    }
    ?>
    Comme tu passe de variable php, il faut mettre la valeur de ton action entre <? ?>

    et il faut que tu récupère tes variable pour ton update.


    Yasen77

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 51
    Par défaut
    tu vas penser que je ne suis pas douée , mais j'ai fait ce que tu m as dit et lorsque je clique sur le bouton "ok", le serveur ne trouve pas la page, il m dit :"page web introuvable"


    voilà le lien vers lequel il essaie d aller : http://127.0.0.1/messages%20du%20contact_client/%3C?%20'liste_messages_clients.php?nom='.$nom.'&&prenom='.$prenom.'';%20?>

    ce que je ne comprends pas c est pourquoi il passe par "message_contact_client" qui est la page qui dit au client "votre message a bien été envoyé, pour revenir à la page d accueil..blabla"


    merci encore pour ton aide

  8. #8
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    199
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 199
    Par défaut
    L´adresse vers laquelle il essaie d´aller c´est l´adresse que tu donnes dans le action de ton formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form method="post" action="<? echo 'liste_messages_clients.php?nom='.$nom.'&&prenom='.$prenom.'; ?>">

Discussions similaires

  1. Remplir une bdd avec des données libre de droit
    Par wyzer dans le forum Débuter
    Réponses: 0
    Dernier message: 29/06/2011, 16h31
  2. remplir une Bdd sql serveur a travers un formulaire Asp.net
    Par mead_Developper dans le forum ASP.NET
    Réponses: 9
    Dernier message: 28/05/2009, 11h36
  3. [XML] Parser du XML pour remplir une BDD SQL
    Par LePueblo dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 08/10/2008, 12h44
  4. [1.x] Impossible de remplir la BDD sandbox.db
    Par pc.bertineau dans le forum Symfony
    Réponses: 4
    Dernier message: 23/05/2008, 17h38
  5. remplir listbox bdd
    Par lesafir dans le forum ASP.NET
    Réponses: 8
    Dernier message: 21/06/2007, 17h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo