Execute sql with button

Résolu
Bonjour,

Voilà mon code est terminé, j'aimerais bien quand on clique sur un boutton une fonction sql s’exécute, comment faire ?



--
Apprenti développeur.
HTML,CSS, PHP & JAVA (Créateur de SiteWEB)

3 réponses

  1. bouton -> evenement onlick -> requete ajax au script php qui execute la requete
    0
    1. Salut, tu peux me donner un code s'il te plaît ?
      0
  2. Modérateur
    Bonjour,

    Tu peux utiliser plusieurs façons de faire.
    - Un formulaire (ce qui implique à réaffichage de la page à chaque clic ) :
    https://www.commentcamarche.net/contents/493-formulaires-html-cours-et-exemples
    https://www.commentcamarche.net/contents/793-php-recuperation-de-donnees

    - Un "lien" avec une variable de type GET (la aussi.. changement de page ou réaffichage de la page)
    https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/912799-transmettez-des-donnees-avec-lurl

    - L'ajax (mélange de javascript + php, qui lui a l'avantage de ne pas avoir à recharger la page)
    Pour l'ajax, je te conseille fortement d'utiliser JQUERY (librairie javascript).
    Voici un exemple complet d'ajax : https://forums.commentcamarche.net/forum/affich-33258760-remplir-un-formulaire-dynamiquement-en-fonction-d-une-combobox#2
    (mais tu trouveras de très nombreux exemples sur le net sans souci.... )
    0
    1. <?php
        include_once('_ressources/classes/check.class.php');
      
      
        $username = (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) ? $_SERVER['QUERY_STRING'] : $_SESSION['jigowatt']['username'];
        $guil = "\"\"";
        $number = "2";
        try
              {
               $bdd = new PDO(************ PROTECT');
               $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
              
              }
            catch(Exception $e)
             {
              die('Erreur : '.$e->getMessage());
             }
          if(isset($_POST['submit'])){
           $bdd->exec("UPDATE login_users SET user_level=\"a:1:{i:0;s:1:$guil$number$guil;}\" WHERE username='".$username."'");
          }
      ?>
         
      
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="utf-8">
            <title>test</title>
            <link rel="stylesheet" type="text/css" href="_ressources/concours/travail/css/lottoform.css" />
        </head>
          <body>
            <div class="container">
              <section id="content">
                <form action=""> 
                  <h1>AchatHebs - VIP SUCCES!</h1>      
                  <p> Vous êtes maintenant V.I.P. Merci pour votre achat ! Votre transaction est maintenant terminée.
                  <br>          
                   
                   
                  </form>
                  <div class="button">            
                     <form action='' method='POST'>         
                         <input onclick="alert('Merci de déco/reco?');" type='submit' name='submit'/>
                     </form>
                  </div>
              </section>
            </div>
          </body>
      </html>
      


      Bonjour, alors voilà mon code exécute même sans appuyer sur le bouton.. comment faire ?
      0
      1. Modérateur
        Heu...
        Ceci:

        Bonjour, alors voilà mon code exécute même sans appuyer sur le bouton.. comment faire ?

        Tu veux dire quoi exactement.....
        Que ton code (actuellement) s'exécute même si on ne clique pas sur le bouton ....
        ou bien que tu voudrais que ton code s'exécute sans avoir à cliquer sur le bouton ? (car là.. ta formulation n'est pas clair...)
        0
      2. Haha désolé.

        Normalement : Il doit s’exécuter quand on clique sur le button.

        Problème Actuel : Il exécute même si nous avons pas cliquer sur le button
        0
      3. Donc je sais pas comment faire :/
        0
      4. Modérateur
        Comme ça ? :
        <?php
          include_once('_ressources/classes/check.class.php');
          
        	//connexion à la BDD
          try{
        		 $bdd = new PDO('************ PROTECT');
        		 $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);	
        	}catch(Exception $e){
        		die('Erreur : '.$e->getMessage());
        	 }
        
        	$username = (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) ? $_SERVER['QUERY_STRING'] : $_SESSION['jigowatt']['username'];
          $guil = "\"\"";
          $number = "2";	 
        	
        	//Si le bouton submit est cliqué :
        	if(isset($_POST['submit'])){
        	 $sql = "UPDATE login_users SET user_level=\"a:1:{i:0;s:1:$guil$number$guil;}\" WHERE username='$username'";
        	 $bdd->exec($sql);
        	 $titre = "AchatHebs - VIP SUCCES!";
        	 $message = "Vous êtes maintenant V.I.P. Merci pour votre achat ! Votre transaction est maintenant terminée";
        	}
        ?>
           
        
        <!DOCTYPE html>
        <html lang="en">
          <head>
            <meta charset="utf-8">
              <title>test</title>
              <link rel="stylesheet" type="text/css" href="_ressources/concours/travail/css/lottoform.css" />
          </head>
            <body>
              <div class="container">
                <section id="content">
                    <h1><?php echo $titre;?></h1>      
                    <p> <?php echo $message;?></p>
                    <br>          
                             
                    <div class="button">            
                       <form action='' method='POST'>         
                           <input onclick="alert('Merci de déco/reco?');" type='submit' name='submit'/>
                       </form>
                    </div>
                </section>
              </div>
            </body>
        </html>
        
        0
      5. Franchement... Merci beaucoup jordane45.

        Le code fonctionne très bien!

        Bonne journée a vous.
        0