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

  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.'; ?>">

  9. #9
    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
    oui c'est ce que j'avais cru comprendre mais il ne trouve pas cette page quand je fais "ok" pour valider mon commentaire...

    pour le coup je suis totalement larguée!

    Vous croyez qu'en passant par l'ID ça serait plus simple? je le récupère de la même manière que je récupère le nom et le prénom?

  10. #10
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    199
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 199
    Par défaut
    Lol t´inquietes on va y arriver

    Alors
    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.'; ?>">
    Ca veut dire que quand tu clics sur ok, tu envoies les info de ton formulaire, a savoir repondre par oui ou par non vers la page liste_messages_clients.php
    Donc, maintenant il faut que cette page exsite et que tu traites les donnees. Tu recuperes cette donnee par $_POST[lu]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ?nom='.$nom.'&&prenom='.$prenom.'
    te permet de connaitre la personne sur qui a ete poste le commentaire.
    Tu recuperes ces 2 donnees par $_GET[nom] et $_GET[prenom].

    Voila donc a toi apres avec toutes ces donnees de bien faire ta requete update

    Sinon pour l´id, c´est juste que ca t´evite de passer nom ET prenom, mais juste une variable.

    Hesite pas, mais regarde le lien sur les formulaires, ca devrait t´eclairer

  11. #11
    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
    et ci tu met ceci

    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.'; ?>">
    cela te fait quoi ??

    Yasen77

  12. #12
    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
    ok merci! je suis passée en ID comme tu me l avais conseillé je vais regarder le lien sur les formulaires plus en détail!

  13. #13
    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
    yasen77, ça ne fonctionne toujours pas, je vais essayer une autre technique et je vous en reparle! merci pour votre aide

  14. #14
    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
    bon me revoilà avec ma méthode pour essayer de "contourner le probleme"
    mais elle n est pas si efficace que ca car je suis obligée d'appeler à l aide!

    alors je vous explique ma démarche :
    1) j avais fait un lien "supprimer" pour chaque message qui fonctionnait très bien (i.e lorsqu'on cliquait dessus ca ne supprimait que le message voulu)

    2) je me suis dit, je vais faire pareil avec mon commentaire! donc j ai créé un lien "update" sur lequel on clique une fois que le texte est rentré dans la textbox
    et ce lien correspond à un ID précis

    3) le souci : déjà je suis obligée de faire un bouton valider pour valider le texte de ma textbox (alors que je voudrai juste mettre mon lien update)

    4) le 2eme souci : c est que j ai une erreur sur mon code mais je n arrive pas à la corriger!

    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
    <?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
    {
     
    //$id_client = addslashes($donnees['id_client']);
     
    ?>
     
    <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">
      <p>&nbsp;  </p>
      <p> </p>
       <input type="text" name="lu" /> 
       <input type="submit" name="ok" value="ok"  /> // Bouton OK que je voudrai supprimer
    </form>  </td>
     // j ai mis dans une autre colonne le lien pour UPDATER
     <td><p>message lu? : <?php echo $_POST['lu']; ?></p><?php echo '<a href="liste_messages_clients.php?update=' . $donnees['id_client'] . '">'; ?>update</a></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> 
     
    // code pour SUPPRIMER
    <?php
    if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
    {
        //Alors on supprime la news correspondante
        // On protège la variable "id_news" pour éviter une faille SQL
       $_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
       mysql_query('DELETE FROM client WHERE id_client=\'' . $_GET['supprimer_news'] . '\'');
    }
     // code pour UPDATER en suivant le modèle du code pour SUPPRIMER
    if (isset($_GET['update'])) // Si on demande d'updater un commentaire
    {  $lu = addslashes($_POST['lu']);
     
        // On protège la variable "id_client" pour éviter une faille SQL
       $_GET['update'] = addslashes($_GET['update']);
       mysql_query('UPDATE  client SET mess_lu = '.$lu.' WHERE id_client=\'' . $_GET['update'] . '\'');
    }
    ?>
    merci!

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