Come faccio a estrapolare dei dati da una tabella sql in base all'iniziale ??
Cliccando sulla lettera A deve far venire fuori tutti i dati contenuti che iniziano per "A"
, cliccando su B la stessa cosa .... etc etc
Help!!!
Come faccio a estrapolare dei dati da una tabella sql in base all'iniziale ??
Cliccando sulla lettera A deve far venire fuori tutti i dati contenuti che iniziano per "A"
, cliccando su B la stessa cosa .... etc etc
Help!!!
Un po vago l'esempio pero' quello che cerchi forse e' questo:
SELECT * FROM tabella WHERE nomeCampo LIKE 'A%'
qundi avrai assegnato ad ogni lettera il valore stesso (link o pulsante che sia) da utilizzare poi nella query.
like '%A%' = che contiene a
like 'A%' = che inizia per a
like '%A' = che finisce per a
probabilmente c'è un modo per farlo anche direttamente da SQL, ma non conoscendolo ti do la mia soluzione in PHP:
Codice PHP:
$char = "a";
$sql = "SELECT * FROM tua_tabella ORDER BY nome ASC";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
if(substr($row['nome'], 0, 1) == $char)
{
// stampo il nome
}
}
![]()
Eccezionale sta dritta...me la segno ^^Originariamente inviato da marco80
Un po vago l'esempio pero' quello che cerchi forse e' questo:
SELECT * FROM tabella WHERE nomeCampo LIKE 'A%'
qundi avrai assegnato ad ogni lettera il valore stesso (link o pulsante che sia) da utilizzare poi nella query.
like '%A%' = che contiene a
like 'A%' = che inizia per a
like '%A' = che finisce per a
Originariamente inviato da Il_Drugo
probabilmente c'è un modo per farlo anche direttamente da SQL, ma non conoscendolo ti do la mia soluzione in PHP:
Codice PHP:
$char = "a";
$sql = "SELECT * FROM tua_tabella ORDER BY nome ASC";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
if(substr($row['nome'], 0, 1) == $char)
{
// stampo il nome
}
}
![]()
Si. però facendo cosi, ti carichi tutti i dati del database ogni volta che ti serve una letterra.
puo non essere un problema con 100 record pero se ti ritrovi piu di 5000 record, rellenta lo script im modo significativo.
questa versione ti carica solo i dati che ti servono per quella paginaCodice PHP:
$char = "a";
$sql = "SELECT * FROM tua_tabella WHERE SUBSTRING('nome', 0, 1)='$char' ORDER BY nome ASC";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
// stampo il nome
}
SELECT * FROM tabella WHERE nomeCampo LIKE 'A%'
qundi avrai assegnato ad ogni lettera il valore stesso (link o pulsante che sia) da utilizzare poi nella query.
like '%A%' = che contiene a
like 'A%' = che inizia per a
like '%A' = che finisce per a
RIPRENDO QUESTO NN AVEVO PENSATO ALLA PAGINAZIONE
basta fare :
SELECT * FROM tabella WHERE nomeCampo LIKE 'A%' LIMIT 20 (20 record per esempio)
per i primi 20 oppure:
SELECT * FROM tabella WHERE nomeCampo LIKE 'A%' LIMIT 0,20
per prenderne venti dal record N°0 fino al numero 20. Ovviamente in base al progetto ti devi costruire la paginazione.
Si infatti...ma non conoscendo queste sintassi di MySQL (purtroppo -_-') non potevo fare altrimenti. Cmq ottimo imparare ste cose..mi torna giusto utile per un vecchio script.Originariamente inviato da sideval
Si. però facendo cosi, ti carichi tutti i dati del database ogni volta che ti serve una letterra.
puo non essere un problema con 100 record pero se ti ritrovi piu di 5000 record, rellenta lo script im modo significativo.
questa versione ti carica solo i dati che ti servono per quella paginaCodice PHP:
$char = "a";
$sql = "SELECT * FROM tua_tabella WHERE SUBSTRING('nome', 0, 1)='$char' ORDER BY nome ASC";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
// stampo il nome
}
Grazie![]()