Simplification de requete ?

Petit nouveau ! | 2 Messages

12 mai 2017, 14:22

Bonjour,
j'ai dans un table une longue liste de fichiers et j'essaye d'afficher le nombre de fichiers mais pour chaque lettre par ordre alphabétique, genre Il y a genre 12 fichiers commençant par un chiffre, 10 fichiers par la lettre a , 25 fichiers par la lettre B etc...
Actuellement je fais des requêtes de ce genre pour chaque lettre de alphabets + chiffres et cela fonctionne...

Code : Tout sélectionner

<?php $bdd = new PDO('mysql:host='.$sql_host.';dbname='.$sql_data, $sql_user, $sql_pass); $req = $bdd->prepare("select count(*) from matable WHERE name REGEXP \"^[0-9]\""); $req->execute(); if($row = $req->fetch()){ echo $row[0]; } $req->closeCursor(); ?> <?php $let = a; $req = $bdd->prepare("select count(*) from matable WHERE name LIKE \"$let%\""); $req->execute(); if($row = $req->fetch()){ echo $row[0]; } $req->closeCursor(); ?> <?php $let = b; $req = $bdd->prepare("select count(*) from matable WHERE name LIKE \"$let%\""); $req->execute(); if($row = $req->fetch()){ echo $row[0]; } $req->closeCursor(); ?>
etc...
Je me demandais s'il c'est pas possible de le faire plus simplement ??
merci de vos conseils

Mammouth du PHP | 2703 Messages

12 mai 2017, 14:33

ce point de départ doit fonctionner :
SELECT substr( name, 1, 1 ) , count( * ) FROM `matable` GROUP BY substr( name, 1, 1 )