Banale requête de comptage

Résolu
Bonjour,
Je cherche à partir d'une variable compter le nombre d’occurrence dans une colonne.
La requête fonctionne bien dans la BDD
Le debug en print_r($request) comme print_r($nbre) donne : Fatal error: Uncaught Error: Call to a member function fetch() on string in /home/anegjxuk/public_html/ULM/EnvoiCreationNumStage.php:24 Stack trace: #0 {main} thrown in /home/anegjxuk/public_html/ULM/EnvoiCreationNumStage.php on line 24

voici mon code :
<?php

  //activation de l'affichage des erreurs PHP
  error_reporting(E_ALL);
  ini_set('display_errors', TRUE);
  ini_set('display_startup_errors', TRUE);

echo "TEST";

        //on récupère proprement la variable avant de l'utiliser
        $Saison = !empty($_POST['Year']) ? trim($_POST['Year']) : NULL; // on récupère la variable NULL et on supprime les "lead spaces"

     //test d'affichage de la variable
    echo '<br>'.$Saison.'<br>';     //Test OK => passage en commentaire

    if($Saison){ // si la variable $Saison existe et n'est pas nulle/vide
 
  //on inclut le fichier de connexion à la bdd
  require_once "../secure/cnxBdd.php";

        //requête pour compter le nb d'occurence égale à la variable $Sasion dans la colonne Saison  
        $request = "SELECT COUNT(*) FROM Stages_ULM where Saison = ".$Saison;  
        //on envoi la requête et on récupère le résultat dans la variable $result
        $nbre = $request->fetch();

//debug
print_r($nbre).'<br>';

        //on affiche le résultat 
        echo $nbre.'<br>'; 

    }
?>


Un grand merci d'avance.

4 réponses

  1. Modérateur
    Bonjour,

    Vu que tu fais du PDO, commence par ça
    https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

    Tu y trouveras un exemple d'exécution de requête... ( prepare puis execute )

    //préparation de la requête et des variables
      $sql= "SELECT COUNT(*) FROM Stages_ULM where Saison = ? ";  
          
     $datas = array($Saison);
    
    //Execution de la requete
    try{
      $requete = $bdd -> prepare($sql) ; // $bdd à renommer par le nom de ta variable de connexion
      $requete->execute($datas) ;
    
       $nbre = $requete->fetch();
    
    }catch(Exception $e){
      // en cas d'erreur :
       echo " Erreur ! ".$e->getMessage();
       echo " Les datas : " ;
      print_r($datas);
    }
    

    1
    1. Salut,

      Le message d'erreur indique que tu essayes d'appeler la fonction fetch() sur une variable de type string : en effet ta variable $request est juste une chaine de caractère, elle ne possède pas de fonction.

      Tu as simplement oublié d'exécuter ta requête sql.

      Bonne journée,
      0
      1. Bonjour Pitet,
        Comme tu peux t'en douter, je suis un vrai branque en codage.
        $nbre = $request->fetch();

        n'envoie donc pas la requête pour execution ?
        Quelle serait la bonne syntaxe ? svp.
        Merci
        0