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

  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.
    0
    1. En faite c’est une requête préparée j’essaye de faire
      0
  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.
    0
    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
      0
  3. Modérateur
    Bonjour

    Pour tes écho.. il faut utiliser ta variable $vospost et non pas $idm
    0
    1. C’est fait mais quand j’envoie le formulaire rien ne s’affiche sa devient une page vierge
      0
    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()
      0
  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>
    


    0