Requête SQL COUNT

parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, j'essaie d'exécuter une requête SQL COUNT mais je ne comprends pas pourquoi, elle ne fonctionne pas dans ma page PHP. Je l'ai exécuté directement dans la console SQL de phpmyadmin et la ça marchait nickel. Voilà ma requête :

$req_nbre = $bdd->prepare("SELECT (SELECT COUNT(ID) FROM users WHERE Attr>?) as Nbre_total);
   
   $req_nbre->execute(array($_GET['Attr']));
   $donnees = $req_nbre->fetch();
   echo json_encode($donnees);



j'ai bien vérifié que $_GET['Attr'] n'était pas non vide. Mais rien ne ressort de la requête !
Auriez-vous une idée ?
Merci d'avance pour votre aide !

3 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour
pourquoi faire un select de select ??
Un seul suffit !!

Et puis... tu as oublié de fermer tes guillemets
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Pour ce qui est de la requête ... essayes juste ça :
SELECT COUNT(ID) as Nbre_total
FROM users 
WHERE Attr>? 


Pour ton code PHP :
//on récupere PROPREMENT les variables AVANT de les utiliser
$attr = !empty($_GET['Attr']) ? $_GET['Attr'] : 0;


//On prépare la requête
$sql = "SELECT COUNT(ID) as Nbre_total
           FROM users 
          WHERE Attr>? ";

//on prépare les variables  de la requête
$a_datas = array($attr);


//On exécute la requete
try{
   $prepare = $bdd->prepare($sql);
   $prepare->execute($a_datas); 
   $resultat =$prepare->fetch();
}catch(Exception $z){
 //en cas de pb dans la requete
  echo "Erreur ! ".$e->getMessage();
}

//on retourne le résultat :
  echo json_encode($resultat);


0
parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   6
 
Merci pour ta réponse mais absolument rien ne marche...
En fait ces requêtes marchaient très bien avant qu'ovh ne fasse une mise à jour de leur interface MySQL désactivant au passage l'option auto-increment sur une colonne dans une nouvelle table...
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Tu as testé la requête en direct dans la bdd ?
0
parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   6
 
Oui en direct dans la BDD ça marche mais pas depuis ma page PHP.
Elles marchaient avant et maintenant ça plante, c'est très étonnant... Il y a un autre moyen de faire ce genre de requête ?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Tu as bien écrit les champs de la même façon qu'ils le sont en bdd ? majuscules / minuscules ??
Tu peux fa ire un dump structure de ta table ? (Ou un show create )
0