Where clause

Résolu
salut tous le monde enfaîte j'aimerai faire un where clause avec un formulaire la je sais pas c'est quoi le soucie .......
merci d'avance

<?php if(isset($_POST['formvosart'])) {
  
   $idm = htmlspecialchars($_POST['idm']); 
   $requser = $bdd->prepare('SELECT * FROM articles WHERE idm = ?');
   $requser->execute(array($idm));
   $vospost = $requser->fetch();
  ?>
  <?php
             echo $idm['pseudo']; 
             echo $idm['article'];
             echo $idm['prix'];
    ?>
<?php }  ?>

<html>
   <head>
      <title>TUTO PHP</title>
      <meta charset="utf-8">
   </head>
   <body>
      <form method="get" action="">

         <input type="text" name="idm" >
         <input type="submit" name="vosart" >
         
      
</form>
   </body>
</html>

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Pourquoi ru utilises htmlspecialchars ?
    $idm = htmlspecialchars($_POST['idm']);

    Si c'est pour exclure les caratères non désirés, ce n'est pas somme ça qu'il faut faire et dans le cas d'une requête préparée, c'est inutile.
    1. En faite c’est une requête préparée j’essaye de faire
  2. Contributeur
    bonjour, quel est le symptôme?
    à toi de nous décrire le soucis, nous pourrons ensuite t'aider à en découvrir la source.
    1. J’aimerais faire une requête préparer de where clause dépendant de l’input de formulaire

      Le soucie quand j’envoie le formulaire rien ne s’affiche sa devient une page vierge
  3. Modérateur
    Bonjour

    Pour tes écho.. il faut utiliser ta variable $vospost et non pas $idm
    1. C’est fait mais quand j’envoie le formulaire rien ne s’affiche sa devient une page vierge
    2. Contributeur
      @ir_1997peut-être ajouter
      echo "bonjour";
      avant le premier if.

      bizarre d'écrire
      form method="get"
      et d'ensuite traiter le retour via
      $_POST()
  4. Modérateur
    Déjà, active l'affichage des erreurs PHP ainsi que l'affichage des erreurs PDO
    (et place CHAQUE requête dans un bloc TRY / CATCH)
    Comme expliqué ici :
    https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

    Ensuite, applique les conseils donnés ici : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

    Ce, au niveau du bout de code que tu nous montres, ça devrait donner
    
    <?php
    //affichage des erreurs PHP
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    
    //connexion à la bdd //
    // ... ton code de connexion avec activation des erreurs PDO
    //.....
    //.....
    
    
    //la suite de ton code :
    
    //récupération PROPRE des variables AVANT de les utiliser :
    $idm = !empty($_POST['idm']) ? $_POST['idm'] : NULL;
    
    //traitemetn du formulaire
     if(isset($_POST['vosart'])) {
     
      //préparation de la requête et des variables
       $sql = "SELECT * FROM articles WHERE idm = ?";
       $datas = array($idm);
      //Execution de la requete
      try{
        $requete = $bdd -> prepare($sql) ;
        $requete->execute($datas) ;
        $vospost = $requete->fetch();
      }catch(Exception $e){
        // en cas d'erreur :
         echo " Erreur ! ".$e->getMessage();
         echo " Les datas : " ;
        print_r($datas);
      }
      
      if(!empty($vospost)){
        echo $vospost['pseudo']; 
        echo $vospost['article'];
        echo $vospost['prix'];
      }
    }
    ?>
    
    <html>
       <head>
          <title>TUTO PHP</title>
          <meta charset="utf-8">
       </head>
       <body>
          <form method="post" action="">
             <input type="text" name="idm" >
             <input type="submit" name="vosart" >
          </form>
       </body>
    </html>