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 :

update de BDD [MySQL]


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 update de BDD
    bonjour!

    bon j'ai lu quelques posts concernant les update mais aucun ne m a aidé. donc voilà je m adresse à vous ! je vous explique ce que j essaie de faire :

    j'ai créé un petit formulaire dans lequel la personne va dire si le message a été lu ou non et j aimerai que la mention "lu" ou "non lu" soit entrée dans la base de donnée contenant les messages.

    Voici le petit bout de code concernant l update, je pense qu'il y a des fautes dans la syntaxe mais je suis débutante dc pas douée pour les voir! si vous voulez plus de code dites le moi !
    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
     <form method="post">
     
        <input type="text" name="lu" value="Le message est-il lu? (répondre par OUI ou NON)"
    	<?php 
    if(isset($_POST['lu']) ) 
    {
    mysql_query( "UPDATE client SET mess_lu = ".$_POST['lu']." WHERE id_client = '25'"); 
         echo $donnees['mess_lu'];     
     
    }
    ?> 
    /> 
     
      <p>message lu? : <?php echo $_POST['lu']; ?></p> 
        <input type="submit" name="ok" value="OK"/>
     
     
    </form>
    merci beaucoup!

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Bonjour,

    Il manque l'attribut action de ton formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <form name="form1" method="post" action="page.php">
    <input type="checkbox" name="lu" value="OUI">
    </form>
    et c'est dans page.php que tu fais ton update. Tu ne peux pas le faire avant d'avoir envoyé le formulaire

    ensuite utilise un checkbox : l'utilisateur aura seulement à cocher et pas écrire OUI ou NON avec les vérifs d'orthographe que cela implique.

    Si la valeur de $_POST['lu'] est indéterminée ou vide dans page.php, c'est qu'il n'a pas coché (CQFD) , donc tu enverras NON lors de ton update.

    En fait , si tu mets ton champ à NON par défaut, tu n'auras besoin d'updater que si $_POST[lu'] = "OUI"

  3. #3
    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
    ah ok mais le "problème" c est que je veux que la mention "lu" (ou non lu) soit affichée sur cette page (c est celle contenant les messages laissés), c est possible?

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Oui, c'est possible mais seulement après avoir traité le formulaire.
    (Tu ne peux pas le savoir avant)

    Si l'utilisateur revient sur cette page, il faut que tu récupères la valeur de LU dans ta BDD et que tu coches/décoches la case à l'affichage. (ou que tu la masques si tu ne veux pas qu'il décoche aprés avoir coché une première fois)

    En vérité, tu n'as même pas à mettre de case à cocher :
    Si la page s'affiche, c'est qu'elle va être lue, tu peux donc updater avant et afficher une image (coche) ou une phrase "message lu".
    A moins que tu veuilles que l'utilisateur coches la case pour vérifier qu'il a bien lu la page

  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
    merci de tes réponses rapides, mais justement pour récupérer la valeur LU de ma BDD il faut d'abord que mon utilisateur l'ait rentrée une premiere fois et ensuite je veux, comme tu l as justement dit, que la case LU reste cochée par exemple.

    J avais tenté un truc avec selected mais sans réussite, c est pourquoi j'ai préféré l affichage du texte que l'utilisateur rentrera (lu, non lu, important...)

    aurais tu une piste pour m aider à coder,
    j ai un peu modifié le code, mais toujours aucune valeur ne rentre dans ma BDD (désolée je suis une vraie débutante en php! mais je veux m ameliorer)
    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
    <form method="post" action="liste_messages_clients.php">
      <p>&nbsp;  </p>
      <p> </p>
        <input type="text" name="lu" value="Le message est-il lu? (répondre par OUI ou NON)"
        <?php 
    if(isset($_POST['lu']) ) 
    {$lu = addslashes($_POST['lu'])
    mysql_query( "UPDATE client SET mess_lu = '".$lu."' WHERE id_client ='25'"); 
         echo $donnees['mess_lu'];     
     
    }
    ?> 
    /> 
     
      <p>message lu? : <?php echo $_POST['lu']; ?></p> 
        <input type="submit" name="ok" value="OK"/>
     
     
    </form>
    d ailleurs avec ce script (celui mis dans le message du dessus), j ai une erreur : Parse error: parse error, unexpected T_STRING in C:\Documents and Settings\claverriere.GRSQUARELECTRIC\Mes documents\SquareElectric\contenu\admin\liste_messages_clients.php on line 73

  6. #6
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Ben pourquoi tu remets ton update dans le formulaire ????
    Il n'est pas encore envoyé !

    il faut que tu le mettes dans liste_messages_clients.php

    J avais tenté un truc avec selected mais sans réussite, c est pourquoi j'ai préféré l affichage du texte que l'utilisateur rentrera (lu, non lu, important...)
    Checkboxes = checked="checked" et non pas sélected

    Et si le gars il écrit "Waterproof" dans ton champ texte, ça veut dire qu'il a lu ???

    A quoi correspond la ligne 73 ?
    il te manque un ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {$lu = addslashes($_POST['lu']) ;

  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
    lol pour le waterproof, en fait l'utilisateur saura quoi mettre, en fait je fais un formulaire de contact pour le siteweb d'une entreprise et donc la personne qui consultera la BDD avec les messages veut pouvoir mettre son commentaire du genre : lu ou non lu ou à traiter ou waterproof si ca lui plait!

    j ai "sorti" l'update du formulaire, mais j ai une erreur de synthaxe du coup je ne peux pas voir si ca fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php 
    if(isset($_POST['lu']) ) 
    {$lu = addslashes($_POST['lu'])
    mysql_query( "UPDATE client SET mess_lu = '".$lu."' WHERE id_client ='25'"); 
         echo $donnees['mess_lu'];     
    }
    ?>
    erreur : Parse error: parse error, unexpected T_STRING in C:\Documents and Settings\claverriere.GRSQUARELECTRIC\Mes documents\SquareElectric\contenu\admin\liste_messages_clients.php on line 81

    à priori c est au niveau de mess_lu ='".$lu."'... enfin je pense

  8. #8
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Bon, voici un exemple :

    Partons du principe que dans ta BDD tu as le champ mess_lu en ENUM '0','1' avec 0 par défaut (non-lu)

    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
     
    <?php
    //avant le formulaire
    $q = "select mess_lu from clients where id = 25";
    $r = mysql_query($q) or die(mysql_error());
     
    $message_lu = mysql_result($r, 0, "mess_lu");
    if($message_lu == "1"){ $m_lu = "checked='checked'";}
      else{ $m_lu = "";}
    ?>
     
     
    <form name="form1" method="post" action="ta_page_detraitement_du_form.php">
    <input type="checkbox" name="lu" value="1" <?php echo $m_lu; ?> >
    <input type="hidden" name="id" value="<?php echo $client_id; ?>" >
    <input type="submit" name="submit" value="envoyer">
    </form>
    ensuite, dans la page ta_page_detraitement_du_form.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
     
    if((isset($_POST['lu'])) and ($_POST['lu'] == "1")){
     mysql_query ("UPDATE clients SET mess_lu = '1' WHERE id = '" . $_POST['id'] . "' ");
    }
    ?>

  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
    merci! j avais pas lu pour le ";" ! mon problème est résolu merci beaucoup pour ta patience, et bon 14 juillet! (moi je travaille car je ne suis pas en France là )


    merci pour le code, je vais regarder ça de plus près!

  10. #10
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Bon ben on s'est croisé ....

    pour ton erreur (voir plus haut)
    erreur : Parse error: parse error, unexpected T_STRING in C:\Documents and Settings\claverriere.GRSQUARELECTRIC\Mes documents\SquareElectric\contenu\admin\liste_messages_clients.php on line 81

    à priori c est au niveau de mess_lu ='".$lu."'... enfin je pense
    Il te manque un ;
    {$lu = addslashes($_POST['lu']) ; <= ici !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] Nouveau type Doctrine qui update la BDD à l'infini
    Par Sephiroth Lune dans le forum Symfony
    Réponses: 0
    Dernier message: 26/02/2014, 23h50
  2. [UI] Sortable - UPDATE sur BDD non fonctionnel
    Par Ghostly dans le forum jQuery
    Réponses: 0
    Dernier message: 21/08/2013, 14h17
  3. Réponses: 5
    Dernier message: 04/04/2012, 18h49
  4. Updater une BDD à partir d'une DataGridView
    Par casavba dans le forum Windows Forms
    Réponses: 1
    Dernier message: 09/12/2007, 23h27
  5. [Conception] écriture et update dans BDD
    Par lladnll dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 12/03/2007, 17h41

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