Va bene... se vuoi "semplificare" dipende anche da come usi poi i risultati... se per esempio poi fai dei cicli per generare dei tag "OPTION" in html, potresti anche fare un'unica SELECT e DENTRO il ciclo in php per generare i tag verifichi:
- appena un nome inizia con "I" passi al secondo blocco
- appena un nome inizia con "Q" passi al terzo blocco
In questo caso avresti un'unica SELECT, un ciclo PHP (anzichè forse 3 come ora, ma non so cosa fai in realtà: è un'ipotesi) e due "semplici" if all'interno.
La soluzione che mi hai proposto adesso l'ho capita perfettamente e non avrei problemi a metterla in pratica, se non fosse che non stampo i risultati direttamente in php, ma assegno delle variabili che passo alle librerie di smarty (template engine) per la parte in html.
Se usassi dei semplici echo non avrei problemi a risolvere con degli if, ma ho una cosa di questo tipo:
Codice PHP:
//Estrazione dei nomi che iniziano con A fino ad H
$nomi_ah_sql = ............
while(......
//Estrazione dei nomi che iniziano con I fino a P
$nomi_ip_sql = .............
while(......
//Estrazione dei nomi che iniziano con Q fino a Z
$nomi_qz_sql = ...........
while(..................
//Assegno la variabile per smarty
$smarty->assign ("nome_ah", $nome_ah);
$smarty->assign ("nome_ip", $nome_ip);
$smarty->assign ("nome_qz", $nome_qz);
Poi nel file html faccio così:
Codice PHP:
<select width="130">
<option>Nomi A-H</option>
{section name="foo" loop=$nome_ah}
<option>{$nome_ah[foo]}</option>
{/section}
</select>
<select width="130">
<option>Nomi I-P</option>
{section name="foo" loop=$nome_ip}
<option>{$nome_ip[foo]}</option>
{/section}
</select>
<select width="130">
<option>Nomi Q-Z</option>
{section name="foo" loop=$nome_qz}
<option>{$nome_qz[foo]}</option>
{/section}
</select>
Questo codice così strutturato mi risulta abbastanza difficile da gestire, soprattutto perchè è la prima volta che uso un template engine, e anche perchè non sono assolutamente esperto di programmazione.
Se hai 5 minuti di tempo, se ti va e se ritieni questo tipo di impostazione uno scempio, ti sarei davvero grato se mi aiutassi a capire come modificarlo a dovere. In ogni caso ti ringrazio per l'aiuto che mi hai già dato
Assolutamente NON fare 3 query quando ne basta una.
Lo so che si dovrebbe limitare il numero di query, ma in certi casi, come questo ad esempio, mi perdo totalmente in km di codice superfluo.