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

    [MySQL - Database] Creare menu archivio.

    Buona notte a tutti!

    Sto cercando di realizzare una sezione dinamica, all'interno di un sito di un mio collega musicista, dedicata a tutti i concerti da lui effettuati.

    La pagina è strutturata in due colonne: nella colonna di sinistra compaio tutti i concerti (impaginati e in ordine di data), nella colonna di destra il menu di navigazione concerti.

    Ora, per la colonna sinistra al momento nessun problema, mentre per quella di destra non riesco a trovare il modo per ottenere quello che mi sono prefissato e cioé una lista di voci (estratte da un database) corrispondenti ai vari anni di archiviazione dei concerti che, se cliccate, mi permettono di visualizzare sulla colonna sinistra i concerti di un determinato anno.

    Ecco un esempio di quello che vorrei ottenere:

    ARCHIVIO
    ---------------------------------
    2008 - 2007 - 2006 - 2005 - 2004
    2003 - 2002 ...

    Quello che avevo provato a fare era richiamare tramite "select" la colonna relativa all'anno all'interno del mio database e "stampare" il link con all'interno la variabile per la visualizzazione di un singolo anno... purtroppo sono solo riuscito ad ottenere la stampa di tutte le voce inserite nella colonna "anno" e non quindi una sola voce per ogni gruppo di concerti corrispondenti ad un determinato anno, cioé ottengo:

    ARCHIVIO
    ----------------------------------
    2008 - 2008 - 2008 - 2007 - 2007
    2007 - 2006 - 2006 - 2006 - 2006
    ...

    Ho provato con cicli for, foreach, while if, senza però ottenere il risultato sperato.
    Qui sotto il codice dal quale sono partito ed è l'unico che mi permette di visualizzare qualcosa... qualcuno ha qualche suggerimento?

    if ($mostra_contenuto == "concerti") {
    echo "<div id=\"titolo_col_dx\">ARCHIVIO</div>";
    require ("connection_data.php");
    $connessione = @mysql_connect("$host", "$user", "$pass");

    if (!$connessione) {
    die("Connessione non riuscita: " . mysql_error());
    exit;
    } else {

    $query = "SELECT anno FROM concerti ORDER BY anno DESC";
    $preleva = mysql_db_query( $db, $query, $connessione );

    if (!$preleva) {
    echo "ERRORE DURANTE L'ACCESSO DEI DATI";
    } else
    echo "<div id=\"menu_archivio\">";
    while ($riga = mysql_fetch_array($preleva)) {
    echo "{$riga["anno"]}
    echo " - ";
    }
    echo "</div>";
    }
    }
    @mysql_close($connessione);

  2. #2
    SELECT distinct anno FROM concerti ORDER BY anno DESC

    Inoltre:

    mysql_db_query e' una funzione sconsigliata gia' da parecchio tempo. Usa:

    mysql_select_db() e poi mysql_query().

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Perfetto!
    Direi che sia quello che stavo cercando.
    Appena possibile aggiorno lo script, lo testo, e se non faccio altri errori, lo riporto nella discussione.
    Grazie per i suggerimenti.
    Ciao, ciao!

  4. #4
    Ecco fatto!
    Questo è lo script con le correzioni e funzionante:

    if ($mostra_contenuto == "concerti") {
    echo "<div id=\"titolo_col_dx\">ARCHIVIO</div>";
    require ("connection_data.php");
    $connessione = @mysql_connect("$host", "$user", "$pass");

    if (!$connessione) {
    die("Connessione non riuscita: " . mysql_error());
    exit;
    } else {

    $query = "SELECT distinct anno FROM concerti ORDER BY anno DESC";
    mysql_select_db( $db, $connessione );
    $preleva = mysql_query($query, $connessione);

    if (!$preleva) {
    echo "ERRORE DURANTE L'ACCESSO DEI DATI";
    } else
    echo "<div id=\"menu_archivio\">";
    while ($riga = mysql_fetch_array($preleva)) {
    echo "{$riga["anno"]}";
    echo " - ";
    }
    echo "</div>";
    }
    }
    @mysql_close($connessione);


    Grazie, grazie!
    Ciao!

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.