Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    70

    [my_sql][php]Form dinamico che invia dati a tabelle diverse

    SPero di aver azzeccato il titolo in base al regolamento...

    Devo far si che un artista possa inserire un album(titolo,durata,titoli canzoni e upload mp3)su mysql....Il problema e che ogni album può contenere un numero vario di canzoni, quindi forse è il caso di chiedere quante canzoni contiene quell'album e in base al numero stampare caselle di testo nel form...ma poi conviene fare due tabelle diverse(una album e l'altra canzoni) oppure è possibile che un campo della tabella album sia un array in modo da inserire tutti i titoli delle canzoni e poi gli eventuali mp3 caricati? Sono proprio in dubbio sul concetto di come poter fare...

    Per chiarezza riporto il punto in questione del progetto...
    "Gli artisti una volta iscritti potranno inserire i propri album (quanti ne vogliono). Ogni album sarà caratterizzato dal titolo,data di produzione e dai brani che contiene, dove ogni brano ha un titolo,uno o più autori e una durata. Dovrà poi essere possibile caricare ogni singolo brano in formato mp3.

    Qualche idea??

  2. #2
    puoi fare in entrambi i modi.
    Se prevedi che ogni artista abbia tanti album e di conseguenza tante canzoni, ti conviene utilizzare una tabella per ogni settore (artista,album.canzoni) con un indice che regoli i collegamenti.
    Cosi avrai anche la possibilità di fare ricerche semplificate per singola tabella.

    Per la gestione del form, puoi fare quello che vuoi. Anche creare una textarea e chiedere che i dati, quindi i titoli delle canzoni, vengano scritte in modo particolare
    Es. titolo][titolo][titolo oppure titolo,titolo,titolo oppure
    titolo,durata, autori
    titolo,durata,autori
    ...


    e poi in base a come ricevi i dati (scegline uno solo tra questi) spezzi l'array che si forma e ne gestisci i dati per l'inserimento nella tabella.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    70
    Originariamente inviato da Kreatore
    puoi fare in entrambi i modi.
    Se prevedi che ogni artista abbia tanti album e di conseguenza tante canzoni, ti conviene utilizzare una tabella per ogni settore (artista,album.canzoni) con un indice che regoli i collegamenti.
    Cosi avrai anche la possibilità di fare ricerche semplificate per singola tabella.
    Sinceramente sono un p'ò nel pallone...fare inserire i dati da dei form e memorizzarli nelle diverse tabelle è relativamente semplice...Ma poi come associo in una query(ad esempio di stampa dell'album con le relative canzoni)un album con tutte le sue canzoni e magari l'album stesso con l'artita che l'ha inserito?

  4. #4
    con delle query più complesse e traimte i join.

    fai una ricerca sul forum o su internet per le spiegazioni sulle query.

  5. #5
    se tu hai la tabella ALBUM con i campi (ID_ALBUM, TITOLO, ID_AUTORE, ANNO_PUBBLICAZIONE, CASA_DISCOGRAFICA) e una tabella CANZONI con i campi (ID_CANZONE, ID_AUTORE, ID_ALBUM) e una tabella AUTORI (ID_AUTORE, NOME, COGNOME, DATA_NASCITA, RESIDENZA)

    per richiamare tutte le canzoni dell'ALBUM con ID_ALBUM = $idalbum è sufficiente una query così:

    SELECT * FROM CANZONI WHERE ID_ALBUM='$idalbum';

    Semplice no?

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    70
    Originariamente inviato da elysaweb
    se tu hai la tabella ALBUM con i campi (ID_ALBUM, TITOLO, ID_AUTORE, ANNO_PUBBLICAZIONE, CASA_DISCOGRAFICA) e una tabella CANZONI con i campi (ID_CANZONE, ID_AUTORE, ID_ALBUM) e una tabella AUTORI (ID_AUTORE, NOME, COGNOME, DATA_NASCITA, RESIDENZA)

    per richiamare tutte le canzoni dell'ALBUM con ID_ALBUM = $idalbum è sufficiente una query così:

    SELECT * FROM CANZONI WHERE ID_ALBUM='$idalbum';

    Semplice no?
    LE tabelle che ho sono:
    Artisti(id, nome, data , genere, email, utente, password, biografia)
    ALbum(id, titolo, anno, numero_canzoni)
    Canzoni(id,titolo, autore, durata)
    id sempre chiave primaria e autoincrementante

    Devo far si che poi mi stampi tipo una tabella:

    Artista | TitoloAlbum | titoliCanzoni
    pinco | Album1 | song1
    pinco | Album1 |song2
    ecc...
    Il problema è associare l'artista loggato al momento con gli album da lui inseriti e le canzoni inserite di ogni album....

  7. #7
    bravo, allora ti fai altre due tabelle che chiamerai ARTISTIALBUM (id_artista, id_album) e ALBUMCANZONI (id_album, id_canzone) nei quali andrai ad inserire gli id degli artisti, degli album e delle canzoni.
    Ovvero se l'artista con id = 1 ha fatto l'album con id = 4 e l'album con id = 7, dovrai scrivere nella tabella ARTISTIALBUM le righe (1,4) e (1,7). Stessa cosa per le canzoni.

    Poi per tirarti fuori con una sola query sia i dati sull'artista sia i suoi album farai:
    SELECT artista,album.titolo,canzoni.titolo FROM artisti,album,canzoni WHERE artista.id = artistialbum.id_artista AND album.id = artistialbum.id_album AND canzoni.id = albumcanzoni.id_canzone AND album.id = albumcanzoni.id_album;

    non ho potuto testarla, ma dovrebbe essere giusta
    se vuoi una cosa più semplice devi usare gli inner join, ora però non ho il codice sottomano

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.