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

Langage PHP Discussion :

Bouton pour modifier une valeur d'un champ MySQL [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Femme Profil pro
    Automatisme
    Inscrit en
    Juillet 2015
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Automatisme
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2015
    Messages : 198
    Points : 52
    Points
    52
    Par défaut Bouton pour modifier une valeur d'un champ MySQL
    Bonjour,

    Je suis apicultrice et je veux pouvoir surveiller mon rucher qui est à 300m de chez moi et ce la nuit pour éviter les vols de ruches

    Je veux insérer un bouton sur une page HTML
    Lorsque la page s'ouvre on va lire le champ "lumiere" de la base Echange
    Si le champ est à 0 le bouton est de couleur rouge et affiche Off
    Si je clique dessus, il met 1 dans le champ "lumiere" et change la couleur en verte et affiche ON
    Es ce possible sans faire une usine à gaz
    Merci d'avance
    A+

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Est ce que la base de données existe déjà et commande quelque chose ?

  3. #3
    Membre du Club
    Femme Profil pro
    Automatisme
    Inscrit en
    Juillet 2015
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Automatisme
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2015
    Messages : 198
    Points : 52
    Points
    52
    Par défaut
    Oui la BDD MySQL existe
    Elle est hébergée chez FREE

    Je sais que l'on peut utiliser <button> peut être avec onclick mais je ne sais pas le mettre en oeuvre
    A+

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Ce serait bien de nous dire ce que tu sais faire, quel(s) langage(s) tu connais : HTML ? JavaScript ? PHP ?
    Comment tu te connectes à la base de données ? mysql_ ? (C'est Free, certainement, à moins qu'ils aient enfin installé PDO)

    Est-ce que tu as l'impression que je te parles chinois ou javanais ?


    À lire, pour au moins comprendre ce qu'on te propose :


    Voir : "formulaires" et "base de données"
    Dernière modification par Invité ; 14/09/2017 à 09h07.

  5. #5
    Membre du Club
    Femme Profil pro
    Automatisme
    Inscrit en
    Juillet 2015
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Automatisme
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2015
    Messages : 198
    Points : 52
    Points
    52
    Par défaut
    Non tu ne parles pas le javanais

    J'ai des connaissances en HTML et PHP pas en JavaScrip
    Je sais faire une requête SQL mais je n'arrive pas à associer l'appui d'un Button pour lancer la lecture et l'écriture

    Lorsque j'ai crée mon site, Free n'acceptait pas les PDO

    Tu peux consulter mon site: http://ruches.montminoises.free.fr/index.php
    A+

  6. #6
    Membre du Club
    Femme Profil pro
    Automatisme
    Inscrit en
    Juillet 2015
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Automatisme
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2015
    Messages : 198
    Points : 52
    Points
    52
    Par défaut
    J'utilise aussi les formulaires pour enregistrer des données sur une autre base

    Tu penses que l'on peut utiliser la méthode POST pour la lecture ?

    <form action="Echange.php" method="post">
    <button> ??????

    Et dans "Echange.php" lancer la requête SQL
    A+

  7. #7
    Invité
    Invité(e)
    Par défaut
    OK.

    Lorsque la page s'ouvre on va lire le champ "lumiere" de la base Echange
    1/ requête en base de données pour récupérer la valeur de "lumiere" (0 ou 1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $lumiere = $row['lumiere'];
    (N.B. tu aurais pu créer un champ BOOLEEN, avec true ou false, mais bon)

    Si le champ est à 0 le bouton est de couleur rouge et affiche Off
    2/ un FORMULAIRE HTML <form>, avec un bouton.
    Une condition, sur "lumiere" pour afficher un bouton rouge ou vert (avec une class CSS, par exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php if( $lumiere ==0 ){ ...(value du bouton = 1)... } else { ...(value du bouton = 0)... } ?>
    Si je clique dessus, il met 1 dans le champ "lumiere" et change la couleur en verte et affiche ON
    3/ à la soumission du formulaire, on traite les infos reçues.
    requête en Bdd pour changer la valeur du champ "lumiere".

  8. #8
    Membre du Club
    Femme Profil pro
    Automatisme
    Inscrit en
    Juillet 2015
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Automatisme
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2015
    Messages : 198
    Points : 52
    Points
    52
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form action="Echange.php" method="post">
     
         <div class="bouton">
                <inputtype="button" value="" ???????/> SUIS PERDUE
         </div>
    Dans le CSS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    .bouton {
    float: center;
    background-color: #494949;  /*jaune par exemple*/
    }

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par apicultrice Voir le message
    Je sais faire une requête SQL...
    Montre-nous comment.
    (SANS montrer tes paramètres de connexion, évidemment )


    Il faut d'abord récupérer la valeur de "lumiere" dans la bdd -> requête "SELECT....."

  10. #10
    Invité
    Invité(e)
    Par défaut
    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
    <?php
    header('Content-type:text/html; charset=UTF-8');	// encodage UTF-8
    mb_internal_encoding('UTF-8');
    error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED); 	// en TEST !!
    // -----------------------------------------------
    // 1- Connexion à la bdd
    // [..............]
    	//require (__DIR__.'/_test_connexion/_config_connexion_mysql.php'); // A REMPLACER PAR TA CONNEXION !
     
    // -------------------------
    // TRAITEMENT SUR LA MEME PAGE
    if( isset($_POST['lumiere_new']) )
    {
    	// récupération depuis le forulaire
    	$lumiere_new 	= intval($_POST['lumiere_new']);
    	// on UPDATE la table
    	$update_query 	= "UPDATE Echange SET lumiere = ".$lumiere_new.";";
    	mysql_query($update_query) or die('Erreur SQL :<br />'.$update_query.'<br />'.mysql_error());
     
    }
    // -------------------------
     
    // -------------------------
    // 2- requete : récupération de "lumiere" en bdd
    $select_query 	= "SELECT lumiere FROM Echange;";
    $select_result 	= mysql_query($select_query) or die('Erreur SQL :<br />'.$select_query.'<br />'.mysql_error());
    $select_row 	= mysql_fetch_array($select_result);
    $lumiere 		= $select_row['lumiere'];
    // -------------
    // 3- FORMULAIRE (SUR LA MEME PAGE)
    ?>
    <!doctype html>
    <html lang="fr">
    <head>
    <style>
    .bouton { color:white; padding:10px; border-radius:10px; cursor:pointer; }
     
    .bouton-rouge { background:orange; }
    .bouton-vert { background:green; }
    .bouton-rouge:hover { background:green; }
    .bouton-vert:hover { background:red; }
     
    </style>
     
    </head>
    <body>
     
    <form method="post" action="">
    <?php if( $lumiere == 0 ){ // éteinte ?>
    	<button class="bouton bouton-rouge" type="submit" name="lumiere_new" value="1">Allumer la lumière</button>
    <?php } else { // allumée ?>
    	<button class="bouton bouton-vert" type="submit" name="lumiere_new" value="0">Eteindre la lumière</button>
    <?php } ?>
     
    </form>
     
    </body>
    </html>
    il faudrait nous montrer la structure de la TABLE Echange.
    J'ai supposé qu'il n'y avait qu'une seule ligne.

    Si tu dois (par exemple) gérer plusieurs lumières, il faudrait ajouter l'id de la lumière que tu veux allumer/éteindre.
    Mais ça, c'est le niveau suivant...

  11. #11
    Membre du Club
    Femme Profil pro
    Automatisme
    Inscrit en
    Juillet 2015
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Automatisme
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2015
    Messages : 198
    Points : 52
    Points
    52
    Par défaut
    jreaux62

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $link=Connect();
     
    mysql_select_db('ruches_montminoises',$link);
    $sql = "SELECT Lumiere FROM Echange;
     
    $reponse=mysql_query($sql) or die( 'MySQL SELECT ERROR: '. mysql_error());
    $reponse_row 	= mysql_fetch_array($reponse);
    $Lumiere = $reponse_row['Lumiere'];
    Comme il n'y a qu'un enregistrement ...

  12. #12
    Membre du Club
    Femme Profil pro
    Automatisme
    Inscrit en
    Juillet 2015
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Automatisme
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2015
    Messages : 198
    Points : 52
    Points
    52
    Par défaut
    jreaux62

    Tu vas me dire si j'ai bien compris

    De la page principale en HTML, si l'on clique sur le bouton on lance la page en PHP qui va lire la base et envoi en POST la variable Lumiere
    J'ai juste
    Si c'est juste
    Ou lance t on la page PHP
    d'ou sort la variable New_lumiere

    Encore merci pour ton aide

  13. #13
    Membre du Club
    Femme Profil pro
    Automatisme
    Inscrit en
    Juillet 2015
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Automatisme
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2015
    Messages : 198
    Points : 52
    Points
    52
    Par défaut
    Je pense qu'il faut écrire cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form method="post" action="Echange.php">
    <?php if( $lumiere == 0 ){ // éteinte ?>
    	<button class="bouton bouton-rouge" type="submit" name="lumiere_new" value="1">Allumer la lumière</button>
    <?php } else { // allumée ?>
    	<button class="bouton bouton-vert" type="submit" name="lumiere_new" value="0">Eteindre la lumière</button>
    <?php } ?>
     
    </form>

  14. #14
    Invité
    Invité(e)
    Par défaut
    Relis mon code, avec les commentaires.
    Il fonctionne (testé) tel quel.

    Le formulaire et le traitement se font sur la même page.

  15. #15
    Invité
    Invité(e)
    Par défaut
    Séparation des codes :

    1/ Formulaire

    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
    <?php
    header('Content-type:text/html; charset=UTF-8');	// encodage UTF-8
    mb_internal_encoding('UTF-8');
    error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED); 	// en TEST !!
    // -----------------------------------------------
    // 1- Connexion à la bdd
    $link=Connect();
    mysql_select_db('ruches_montminoises',$link);
     
    // -------------------------
    // 2- requete : récupération de "lumiere" en bdd
    $select_query 	= "SELECT lumiere FROM Echange;";
    $select_result 	= mysql_query($select_query) or die('Erreur SQL :<br />'.$select_query.'<br />'.mysql_error());
    $select_row 	= mysql_fetch_array($select_result);
    $lumiere 		= $select_row['lumiere'];
    // -------------
    // 3- FORMULAIRE 
    ?>
    <!doctype html>
    <html lang="fr">
    <head>
    <style>
    .bouton { color:white; padding:10px; border-radius:10px; cursor:pointer; }
     
    .bouton-rouge { background:orange; }
    .bouton-vert { background:green; }
    .bouton-rouge:hover { background:green; }
    .bouton-vert:hover { background:red; }
     
    </style>
     
    </head>
    <body>
     
    <form method="post" action="Echange.php">
    <?php if( $lumiere == 0 ){ // éteinte ?>
    	<button class="bouton bouton-rouge" type="submit" name="lumiere_new" value="1">Allumer la lumière</button>
    <?php } else { // allumée ?>
    	<button class="bouton bouton-vert" type="submit" name="lumiere_new" value="0">Eteindre la lumière</button>
    <?php } ?>
     
    </form>
     
    </body>
    </html>
    2/ Traitement : Echange.php

    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
    <?php
    header('Content-type:text/html; charset=UTF-8');	// encodage UTF-8
    mb_internal_encoding('UTF-8');
    error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED); 	// en TEST !!
    // -----------------------------------------------
    // 1- Connexion à la bdd
    $link=Connect();
    mysql_select_db('ruches_montminoises',$link);
     
    // -------------------------
    // TRAITEMENT
    if( isset($_POST['lumiere_new']) )
    {
    	// récupération depuis le formulaire
    	$lumiere_new 	= intval($_POST['lumiere_new']);
    	// on UPDATE la table
    	$update_query 	= "UPDATE Echange SET lumiere = ".$lumiere_new.";";
    	mysql_query($update_query) or die('Erreur SQL :<br />'.$update_query.'<br />'.mysql_error());
     
    }
    // -------------------------
    ?>

  16. #16
    Membre du Club
    Femme Profil pro
    Automatisme
    Inscrit en
    Juillet 2015
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Automatisme
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2015
    Messages : 198
    Points : 52
    Points
    52
    Par défaut
    Formulaire

    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
            <?php
            include("Connection.php"); 
            $link=Connect();
            // on sélectionne la base 
            mysql_select_db('ruches_montminoises',$link); 
     
            $sql = "SELECT Eclairage FROM Echange";
            // on envoie la requête 
            $reponse=mysql_query($sql) or die( 'MySQL SELECT ERROR: '. mysql_error());
            while ($donnees = mysql_fetch_assoc($reponse))
                  { $Lumiere = $donnees['Eclairage'];	}  
            ?>       
            <form method="post" action="Echange.php">
            <?php if( $Lumiere == 0 ){ // éteinte ?>
            	<button class="bouton bouton-rouge" type="submit" name="Eclairage_new" value="1">Allumer la lumière</button>
            <?php } else { // allumée ?>
            	<button class="bouton bouton-vert" type="submit" name="Eclairage_new" value="0">Eteindre la lumière</button>
            <?php } ?>         
            </form>
    La lecture de la BDD se passe bien
    La variable $Lumiere reflète bien le contenu de la BDD

    Traitement
    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
    <?php
    echo '<p><font face="Times New Roman" size="4" color="red"><strong>Etat: </strong></font>';
    echo $_POST['Eclairage_new'];
     
    include("Connection.php"); 
    $link=Connect();
    // on sélectionne la base 
    mysql_select_db('ruches_montminoises',$link);
    // on crée la requête SQL
     
    if( isset($_POST['Eclairage_new']) )
    {
    	// récupération depuis le formulaire
    	$Eclairage_new 	= intval($_POST['Eclairage_new']);
    	// on UPDATE la table
    	$update_query 	= "UPDATE Echange SET Eclairage = ".$Eclairage_new.";";
    	mysql_query($update_query) or die('Erreur SQL :<br />'.$update_query.'<br />'.mysql_error());
     
    }
    echo '<p><font face="Times New Roman" size="4" color="red"><strong>Etat: </strong></font>';
    echo $Eclairage_new;
    // on ferme la connexion 
    mysql_close($link); 
    ?>
    Le POST ne passe pas
    $_POST['Eclairage_new'] vide

  17. #17
    Invité
    Invité(e)
    Par défaut
    Active l'affichage d'erreur PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php
    error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED); 	// en TEST !!
    Cela dit, je viens de tester TON code : il fonctionne.


    1/ QUESTION : comment s'appellent TES PAGES (les 2) ?

    2/ Pour info : la balise <font> est obsolète depuis le grand-père de Mathusalem (et son arrière-grand-père ne l'utilisait déjà plus).
    Il faut utiliser du CSS.

    3/ J'ai jeté un œil à ton site :
    • plusieurs erreurs dans le code (clic droit -> "afficher le code source") : les balises <html> en double ou triple,.....
    • et PITIÉ : SUPPRIME l'EFFET SONORE (function JouerSon()) !! on croirait que le site est vérolé (virus !) !
    Dernière modification par Invité ; 14/09/2017 à 16h34.

  18. #18
    Membre du Club
    Femme Profil pro
    Automatisme
    Inscrit en
    Juillet 2015
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Automatisme
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2015
    Messages : 198
    Points : 52
    Points
    52
    Par défaut
    Le bouton affiche bien le bon message puisque le champ Eclairage est à 1
    Par contre pas de couleur..

    Nom : eteindre.png
Affichages : 2249
Taille : 921 octets

    Lorsque je clique sur le bouton la page Echange s'ouvre et affiche

    Nom : etat.png
Affichages : 2245
Taille : 775 octets

    L'idéal serai qu'elle ne s'affiche pas

  19. #19
    Membre du Club
    Femme Profil pro
    Automatisme
    Inscrit en
    Juillet 2015
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Automatisme
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2015
    Messages : 198
    Points : 52
    Points
    52

  20. #20
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par apicultrice Voir le message
    L'idéal serai qu'elle ne s'affiche pas
    C'est pour ça que le t'avait donné un code "FORMULAIRE ET TRAITEMENT sur la MEME PAGE"...


    Sinon, il suffit d'ajouter un header( 'location:.....' ); à la fin du traitement.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Bouton pour modifier la valeur d'un champ
    Par gnomathibus dans le forum Odoo (ex-OpenERP)
    Réponses: 1
    Dernier message: 31/10/2013, 22h51
  2. recordset pour modifier une valeur d'un champ
    Par YannC dans le forum VBA Access
    Réponses: 20
    Dernier message: 04/07/2012, 10h41
  3. [AC-2007] Modifier une valeur d'un champ avec inputbox
    Par fabian_945 dans le forum VBA Access
    Réponses: 5
    Dernier message: 13/12/2009, 12h20
  4. [MySQL] condition de temps pour modifier une valeur
    Par Beniti dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 29/05/2008, 08h13
  5. syntax vb pour modifier la valeur d'un champs texte
    Par damien40 dans le forum VBA Access
    Réponses: 13
    Dernier message: 22/04/2008, 17h27

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