Banale requête de comptage

Résolu/Fermé
danielos77 Messages postés 108 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 16 janvier 2024 - Modifié le 17 juin 2021 à 16:53
danielos77 Messages postés 108 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 16 janvier 2024 - 17 juin 2021 à 18:12
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

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
17 juin 2021 à 18:08
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
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
17 juin 2021 à 17:13
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
danielos77 Messages postés 108 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 16 janvier 2024 2
17 juin 2021 à 17:25
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
danielos77 Messages postés 108 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 16 janvier 2024 2
17 juin 2021 à 18:12
Bonjour Jordane,

Merci pour le lien
J'avais commencé par :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

et là je revenais aux bases en lisant
https://www.commentcamarche.net/faq/27489-pdo-une-autre-facon-d-acceder-a-vos-bases-de-donnees

De la lecture en vue.
Bonne continuation dans les "sauvetages"
0