Exécuter une requete sql lors d'un click sur un bouton

Résolu/Fermé
fra - Modifié le 22 déc. 2021 à 15:45
Fraa_w Messages postés 26 Date d'inscription mercredi 22 décembre 2021 Statut Membre Dernière intervention 5 novembre 2022 - 22 déc. 2021 à 22:49
Bonjour,
après plus de deux jours de recherche sur des forums et des vidéos je n'arrive toujours pas à trouver une solution à mon problème
d'ailleurs je ne sais pas si c'est vraiment possible !

dans une page.php je veux mettre un bouton à partir duquel on récupère des informations depuis ma base de données () que lorsque on clique sur ce bouton.

Je vous remercie



Configuration: Windows / Firefox 91.0
A voir également:

5 réponses

jee pee Messages postés 40678 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 14 janvier 2025 9 492
22 déc. 2021 à 16:28
Bonjour,

Tu peux faire une page php qui contient un formulaire avec seulement un bouton et un champ caché, la page s'auto appelle et on teste pour voir si le champ caché est bien renseigné, auquel cas on execute le code php désiré

<body>
<form action= "<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="application/x-www-form-urlencoded">
<div>
<input type="hidden" name="suite" value="C'est parti" />
<input type="submit" value="Démarrer" />
</div>
</form>
<?php
if(isset($_POST["suite"]))
{
echo "<h2>". $_POST["suite"]. "</h2>";
}
?>
</body> 

0
tout d'abord je te remercie pour ta réponse, comme je suis débutant je n'ai pas bien saisi le concept du formulaire



<body>
<!-- Voici le bouton -->
<button id="id1">bouton 1</button>

<?php
// ceci est la requete que je veux executer après le clique

$team1 = $database->query('SELECT nom FROM teams WHERE id = 1');
$team1 = $team1->fetch();

?>

<!-- en suite recuperer le resulat ici par exemple ici -->
<button id="resultat"> <?php echo $team1[0]?> </button>

</body>
0
jee pee Messages postés 40678 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 14 janvier 2025 9 492
Modifié le 22 déc. 2021 à 16:52
Tu remplaces l'echo de ma ligne 11 par ta requete sql

<body>
<form action= "<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="application/x-www-form-urlencoded">
<div>
<input type="hidden" name="suite" value="C'est parti" />
<input type="submit" value="Démarrer" />
</div>
</form>
<?php
if(isset($_POST["suite"]))
{
  $team1 = $database->query('SELECT nom FROM teams WHERE id = 1');
  $team1 = $team1->fetch();
  echo $team1[0];
}
?>
</body> 


PS : Pour la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icônes pour l'enrichissement du texte. Celle qui a cet aspect
<> ▼
permet d'appliquer au code, suivant une liste de valeurs, le format correspondant à sa nature (C, Python, Shell, ...).

0
alors j'ai repris exactement la même chose sauf que le résultat de la requête s'affiche avant de cliquer sur le bouton

Ps : merci pour ta remarque prochainement je mettrai le format correspondant à la nature du code
0
jee pee Messages postés 40678 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 14 janvier 2025 9 492 > fra
22 déc. 2021 à 17:31
Si le fichier a déjà été exécuté une fois et que tu fais actualiser la page, c'est normal.

j'ouvre le navigateur, je l’exécute une fois, je n'ai que le bouton, je valide, alors j'ai une erreur php puisque pas de base de donnée chez moi.

mais tu devrais regarder la proposition de jordane45 qui donne une solution plus globale intégrant la config bdd
0
Fraa_w Messages postés 26 Date d'inscription mercredi 22 décembre 2021 Statut Membre Dernière intervention 5 novembre 2022 > jee pee Messages postés 40678 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 14 janvier 2025
22 déc. 2021 à 17:35
oui jee pee j'ai essayé la méthode de jordan et ça marche
merci beaucoup à vous deux
0
jordane45 Messages postés 38386 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 janvier 2025 4 727
Modifié le 22 déc. 2021 à 16:52
Bonjour,

La première question à se poser c'est :
Veux tu que les données apparaissent sans recharger le reste de la page .... ou tu t'en moques ??

Si tu t'en moques.. dans ce cas.. oui, un formulaire suffira.

Si tu ne veux pas que le reste de la page se réactualise (comme quand tu fais F5 sur ton clavier ..) là ça se complique .. car il faudra utiliser du javascript + ajax.

Partons du principe que tu veux faire au plus simple et que le refresh ne soit pas dérangeant pour toi..

Dans ce cas :

<?php
//on place de préférence le maximum de code PHP  AVANT le début du code html ...


// code de connexion à la bdd
// ....
//...

//traitement du formulaire 
if( isset($_POST['id1'])  ){
  // ceci est la requete que je veux executer après le clique 
  try{
     $req = $database->query('SELECT nom FROM teams WHERE id = 1');
     $team1 = $req->fetch();
  }catch(Exception $e){
     echo "Erreur " . $e->getMessage();
  }
     $nom = !empty($team1['nom']) ? $team1['nom']: "";
}
?>
<Doctype html>
<html> 
  ...


<body>
<form action="" method="post" >
<!-- Voici le bouton -->
<button type="submit" id="id1" name="id1">bouton 1</button>

<!-- en suite recuperer le resulat ici par exemple ici  -->
<button id="resultat"> <?php echo $nom; ?> </button>
</form>

</body>
</html>


0
Fraa_w Messages postés 26 Date d'inscription mercredi 22 décembre 2021 Statut Membre Dernière intervention 5 novembre 2022
22 déc. 2021 à 17:33
merci beaucoup jordan pour ta réponse ça a l'air de fonctionner, j'ai juste une petite erreur avant de cliquer sur le bouton.

image lors du chargement de la page



image après le clique

0
jordane45 Messages postés 38386 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 janvier 2025 4 727
22 déc. 2021 à 17:50
Ah oui .. il faut déplacer la ligne
 $nom = !empty($team1['nom']) ? $team1['nom']: "";

après la fin du IF ( donc en dessous de la ligne 19 actuelle)
0
Fraa_w Messages postés 26 Date d'inscription mercredi 22 décembre 2021 Statut Membre Dernière intervention 5 novembre 2022 > jordane45 Messages postés 38386 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 janvier 2025
22 déc. 2021 à 18:06
Quand je fais ça il m'affiche le résultat lors du chargement de la page (avant de cliquer sur le bouton)
0
jordane45 Messages postés 38386 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 janvier 2025 4 727 > Fraa_w Messages postés 26 Date d'inscription mercredi 22 décembre 2021 Statut Membre Dernière intervention 5 novembre 2022
22 déc. 2021 à 18:53
Heuuu... Qu'as tu fais au juste
0
Fraa_w Messages postés 26 Date d'inscription mercredi 22 décembre 2021 Statut Membre Dernière intervention 5 novembre 2022 > jordane45 Messages postés 38386 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 janvier 2025
22 déc. 2021 à 19:24
Voici ce que j'ai fait



j'ai repris ton code et j'ai décalé ça : $nom = !empty($team1['nom']) ? $team1['nom']: "";

vers la fin de la condition If


<?php
//on place de préférence le maximum de code PHP AVANT le début du code html ...


// code de connexion à la bdd
// ....
//...

//traitement du formulaire
if( isset($_POST['id1']) )
{
// ceci est la requete que je veux executer après le clique

$database = new PDO ('mysql:host=localhost;dbname=visualisation', 'root','');

try
{
$req = $database->query('SELECT nom FROM teams WHERE id = 1');
$team1 = $req->fetch();
}catch(Exception $e){
echo "Erreur " . $e->getMessage();
}
}

$nom = !empty($team1['nom']) ? $team1['nom']: "";

?>


<form action="" method="post" >
<!-- Voici le bouton -->
<button class="custom-btn btn-4" type="submit" id="id1" name="id1">bouton 1</button>

<!-- en suite recuperer le resulat ici par exemple ici -->
<button class="custom-btn btn-4" id="resultat"> <?php echo $nom ; ?> </button>
</form>
0
jordane45 Messages postés 38386 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 janvier 2025 4 727 > Fraa_w Messages postés 26 Date d'inscription mercredi 22 décembre 2021 Statut Membre Dernière intervention 5 novembre 2022
22 déc. 2021 à 20:12
Déjà, tu n'as pas utiliser les balises de code...

Ensuite, qu'est-ce qui ne fonctionne pas dans ce code ?
Il me semble juste...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fraa_w Messages postés 26 Date d'inscription mercredi 22 décembre 2021 Statut Membre Dernière intervention 5 novembre 2022
22 déc. 2021 à 17:53
J'ai une toute dernière question si vous pouvez me donner une piste

Est ce que c'est possible d'afficher le bouton qui comporte le résultat dans une autre page.php

"" Quand on clique sur le bouton ( bouton1 ) ça ouvre une nouvelle page qui comporte le bouton (G_Conso) ""


Merciiii
0
jee pee Messages postés 40678 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 14 janvier 2025 9 492
Modifié le 22 déc. 2021 à 18:11
;-)))

c'est dommage on était sur un formulaire et la réponse en un seul fichier

pour le faire dans un autre fichier php, il faut, plutôt que le formulaire s'auto appelle, appeler le second fichier php
0
Fraa_w Messages postés 26 Date d'inscription mercredi 22 décembre 2021 Statut Membre Dernière intervention 5 novembre 2022 > jee pee Messages postés 40678 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 14 janvier 2025
Modifié le 22 déc. 2021 à 18:18
Je me suis dit si j'arrive à le faire dans le même fichier je saurai comment récupérer le résultat de la requête dans une nouveau fichier
Je continue de creuser merci Jee pee pour la piste
0
jee pee Messages postés 40678 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 14 janvier 2025 9 492 > Fraa_w Messages postés 26 Date d'inscription mercredi 22 décembre 2021 Statut Membre Dernière intervention 5 novembre 2022
Modifié le 22 déc. 2021 à 18:50
généralement les utilisateurs qui le font en 2 fichiers formulaire et utilisation des réponses cherche à regrouper tout en un

action="fichier2.php"
pour appeler un autre fichier
0
Fraa_w Messages postés 26 Date d'inscription mercredi 22 décembre 2021 Statut Membre Dernière intervention 5 novembre 2022 > jee pee Messages postés 40678 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 14 janvier 2025
22 déc. 2021 à 18:46
ça marche je cherche dans ce sens
0