Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal tenho essa consulta para listar as categorias
e funciona normal
A1
A2
B1
...
SELECT * FROM categorias ORDER BY nome_cat
Mas eu pretendo listar e organizar por letra, assim:
A (categorias que iniciam com a letra A)
A1
A2
...
B (categorias que iniciam com a letra B)
B1
...
Tentei usando LIKE mas só retorna a letra, nesse caso teria que fazer 26 consulta, uma cada letra.
Alguém sabe como montar a consulta?
Motta a consulta funcionou e entendi como funciona o substr, li também que existe o MID mas não me aprofundei na leitura.
Voltando a questão, não consegui tratar como você aconselha, na camada, a consulta ficou assim:
$letra = $pdo->prepare("SELECT substr(nome_cat,1,1) letra_inicial, categorias.* FROM categorias ORDER BY nome_cat");
$letra->execute();
if($letra->rowCount() > 0){
while($row=$letra->fetch(PDO::FETCH_ASSOC)){
echo ''.$row['letra_inicial'].'<br>';
echo ''.$row['nome_cat'].'<br><br>';
}
Só que ele repete tipo:
A
A1
A
A2
Quando incluo GROUP BY letra_inicial é mostrado comente a primeira ex:
A
A1
Se puder ajudar com mais essa fico muito agradecido.
php não conheço , mas basicamente é guardar a letra anterior e imprimir quando quebrar.
Ok Motta vou ver se consigo alguma coisa no fórum de php muito obrigado.
use a SQL
FROM categorias ORDER BY nome_cat a exibição deverá ser tratada na camada de aplicação todavia .