• User

    Realizzazione di una pagina concerti in php e mysql

    Ciao ragazzi allora piccolo problema.
    Sto realizzando un sito web per un gruppo musicale.
    Loro avrebbero bisogno di una pagina per i concerti che si appoggi su db mysql in modo da potersela aggiornare di volta in volta.

    Se volete potete vederla su:
    geko04.altervista.org/concerti.php

    Come vedete i concerti vengono divisi in base a mese e anno
    Praticamente io ho creato con phpmyadmin 3 tabelle:
    Tabella anno: id_anno, data_anno
    Tabella mese: id_mese, nome_mese
    Tabella concerti: id_concerti, anno_concerti (prende i valori dalla tabella anno), mese_concerti (prende valori da tabella mesi), data_concerti, luogo_concerti ecc...

    Ho messo nella pagina i nomi dei mesi come pulsanti (non sono quindi caricati da database ma li ho inseriti io come link e il concetto è che ogni volta carichino una pagina diversa tipo gennaio.php, febbraio.php ecc in cui i record vengono filtrati in base al mese).

    Fino a quì tutto ok.
    Il problema è che loro vogliono che vengano visualizzati solo i mesi in cui sono stati caricati dei concerti.
    Come posso fare?:?

    Ho pensato che per per fare questo i mesi dovrebbero essere caricati dai record del database, e il tutto dovrebbe essere gestito diversamente, non so come fare però.

    Spero di essermi spiegato bene.
    Grazie mille a chiunque volesse darmi una mano. :ciauz:


  • User Attivo

    @rttz said:

    [***]

    Un modo veloce, che mi viene in mente seguendo ciò che hai scritto, è distinguere ("SELECT DISTINCT(mese_concerti) ....... ") i mesi coinvolti (spero che il valore sia numerico cioè l'id del mese scritto), dalla tabella CONCERTI e a questo punto visualizzare solo i mesi coinvolti confrontando il mese_concerti della tabella CONCERTI con l'id della tabella mesi.
    Spero mi sia spiegato altrimenti cercherò di farti un esempio.
    CIAO e fammi sapere


  • User Attivo

    Ciao rttz,
    devi metter in JOIN le tabelle 'anno' e 'concerti':

    [php]
    select B.* from concerti A JOIN anno B
    on A.anno_concerti = B.data_anno
    [/php]In A.anno_concerti è salvato l'anno o l'id dell'anno salvato in B?
    Non sono sicuro di aver scelto il campo giusto della tabella B sulla condizione ON.

    Prova e facci sapere.

    :ciauz:


  • User

    mikslap:
    non ho capito molto bene l id_mese è un id numerico a cui poi ho associato un testo come campo nome mese per avere un etichetta nelle pagine di gestione.
    Come faccio a "visualizzare solo i mesi coinvolti confrontando il mese_concerti della tabella CONCERTI con l'id della tabella mesi."

    mirkoagrati:
    Non ho capito benissimo anche qui come devo procedere io devo usare la tebela mesi non quella anno però alla fine il discorso è lo stesso perchè tabella mesi e tabella anno sono costruite nello stesso modo.
    Al posto di A e B devo inserire qualche valore? facendo questo join quale vantaggio mi da?

    Scusate l ignoranza ragazzi magari per voi sono cose ovvie, ma io purtroppo sono più grafico che programmatore e quindi su certe cose mi mancano proprio le basi credo.
    Tra le due risposte quale potrebbe funzionare meglio per il mio caso secondo voi?

    Grazie mille per l aiuto che mi state dando, siete molto gentili.


  • User Attivo

    Ciao,
    hai provato a fare girare la query?

    A e B non sono variabili:
    Dai uno sguardo a qualche tutorial SQL, mi sembra il minimo per poi lavorare con un DB, anche se non si hanno grandi pretese.

    :ciauz:


  • User

    Mi puoi consigliare qualcosa a livello di tutorial?
    Grazie mille


  • User Attivo

    Ciao,
    per un'introduzione 'soft' al linguaggio SQL ti consiglio il tutorial on-line del W3C.

    Puoi trovarlo qui.

    :ciauz:


  • User

    Ciao ragazzi ho messo in JOIN le tabelle ora seleziona giustamente solo i mesi per i quali è stato effettivamente inserito un concerto.

    Il problema ora però è che se ho 2 o 3 concerti in uno stesso mese il nome di quel mese mi viene duplicato per X volte.

    Come gli dico di non visualizzare più volte lo stesso campo?


  • ModSenior

    Ciao rttz,

    puoi fare GROUP BY id_mese nella query.


  • User

    Perfetto, funziona ragazzi!!!!!:vai:
    Mi siete stati davvero di grandissimo aiuto!!
    Posto la query usata se mai a qualcuno potesse servire:

    SELECT newsconcert_mese.id_mese, newsconcert_mese.nome_mese, concerti_concerti.mese_concerto
    FROM newsconcert_mese, concerti_concerti
    WHERE newsconcert_mese.id_mese = concerti_concerti.mese_concerto
    GROUP BY id_mese
    ORDER BY newsconcert_mese.id_mese

    Grazie mille a tutti e grazie a questo forum.

    A presto
    :ciauz: