Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777

    [wordpress e php] Creazione di un glossario

    Salve a tutti,
    ho creato un piccolo glossario che potete ranggiungere alla seguente pagina:
    http://atuttascienza.altervista.org/blog/glossary/

    l'idea è quella di far comparire l'intero alfabeto con le lettere attive per permettere all'utente di raggiungere la lettera desiderata. questo alfabeto lo voglio sopra ogni lettera del gloassario e non solo in alto.

    ho creato il codice e sembra funzionare a dovere. per fare quello che volevo io però devo interrogare il database due volte. mi sembra uno spreco :-)
    Codice PHP:
    <? 


    global $wpdb;

    $lettererange('A','Z');
    foreach (
    $lettere as $lett){
    //SELEZIONO I TERMINI DEL GLOSSARIO
    $vociglossario $wpdb->get_results
        
    "
        SELECT *
        FROM avwp_posts
        WHERE post_type= 'glossario'
        AND post_title LIKE '
    $lett%'
        ORDER BY post_title
        "
    );

    //CONTEGGIO I TERMINI DEL GLOSSARIO
    $conteggio $wpdb->get_var

    "
        SELECT COUNT(*)
        FROM avwp_posts
        WHERE post_type= 'glossario'
        AND post_title LIKE '
    $lett%'
        ORDER BY post_title
        "
     
    );
    //COSTRUZIONE ALFABETO
    if($conteggio !=0){
    $links[] = "<a href=\"http://www.atuttascienza.altervista.org/blog/glossary#$lett\">$lett</a>";
    }
    else{
    $links[]= "<span class=\"alfabeto_letter_inactive\">$lett</span>";
    }
    }

    $link_alfabeto implode(' - '$links);
    $alfabeto"<div class=\"alfabeto\">$link_alfabeto</div>";




    foreach (
    $lettere as $lett){
    //SELEZIONO I TERMINI DEL GLOSSARIO
    $vociglossario $wpdb->get_results
        
    "
        SELECT *
        FROM avwp_posts
        WHERE post_type= 'glossario'
        AND post_title LIKE '
    $lett%'
        ORDER BY post_title
        "
    );

    //CONTEGGIO I TERMINI DEL GLOSSARIO
    $conteggio $wpdb->get_var

    "
        SELECT COUNT(*)
        FROM avwp_posts
        WHERE post_type= 'glossario'
        AND post_title LIKE '
    $lett%'
        ORDER BY post_title
        "
     
    );


                
    //SVILUPPO I TERMINI PER LETTERA
    if($conteggio !=0){
    echo 
    $alfabeto;
    <
    a name="<?echo $lett;?>"></a>
    <? 
    echo <
    strong>$lett</strong></div>";
    foreach(
    $vociglossario as  $voci){
    $titolo = $voci->post_title;
    $descrizione$voci->post_content;

    echo "
    <div>$titolo</div>";
    echo "
    <div>$descrizione</div>";
    echo "
    <br>";

    }
    }
    }
    ?>
    domanda come posso scriverlo in modo da interrogarlo solo una volta e avere lo stesso risultato visivo? si può fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2017
    Messaggi
    11
    Ma che figata!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.