Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Estrapolare dati in base all'iniziale

    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!!!

  2. #2
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    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

  3. #3
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    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'], 01) == $char)
        {
            
    // stampo il nome
        
    }


  4. #4
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    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
    Eccezionale sta dritta...me la segno ^^

  5. #5
    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'], 01) == $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.


    Codice 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
        

    questa versione ti carica solo i dati che ti servono per quella pagina

  6. #6
    Sono riuscita...Grazie!

  7. #7
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    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.

  8. #8
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    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.


    Codice 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
        

    questa versione ti carica solo i dati che ti servono per quella pagina
    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.

    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.