par
Ryle » 25 mai 2021, 10:53
Hello !
En soit il n'y a pas grand chose à redire, mais voici quelques éléments que tu pourrais optimiser dans ce contexte :
- Si la colonne valider en base est un tinyint ou un int (ou n'importe quel format numérique), il n'est pas nécessaire (et il vaut parfois mieux éviter) de mettre des apostrophes autour de la valeur envoyée quand il s'agit d'un nombre côté base de données :
$sql='select count(*) AS nb from commentaire WHERE valider=1';
Ça revient au même et c'est plus facile à lire et à comprendre
Après pour ma part, j'ai pris l'habitude de mettre les mots clés sql en majuscule. C'est totalement arbitraire et ça n'a pas d'impact sur l'exécution de la requête, mais je trouve ça plus simple à lire (ça n'engage que moi) :
$sql='SELECT COUNT(*) AS nb FROM commentaire WHERE valider=1';
- Enfin, les requêtes de type COUNT() ont une particularité par rapport aux autres SELECT, c'est qu'il y aura toujours un résultat de retourné (à moins d'une erreur technique). Si aucun enregistrement n'est trouvé, elle retourne 0 (mais elle retourne une valeur), sinon elle retourne le nombre d'enregistrements correspondant. Il n'est donc pas nécessaire de vérifier si le résultat existe (contrairement à un SELECT classique qui lui ne retournera rien s'il ne trouve aucun enregistrement), pour pouvoir l'utiliser.
$nb = $columns['nb'];
voire directement
echo "Il y a " . $columns['nb'] . " commentaires(s) <br>";