Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080

    Come agire? Quale controllo?

    Ho una form che sarà compliata dagli utenti dove voteranno una determinata cosa. Poniamo che vengano votati i personaggi dei cartoni animati.
    Io vorrei fare un riepilogo mensile dei voti, in quanti hanno votato pippo, in quanti pluto e in quanti paperino.

    Come potrei organizzare il db? Quale controllo è meglio usare per avere un output con in verticale i nomi dei personaggi, in orizzontale i mesi e all'interno il valore delle loro votazioni.

    E' il caso di creare dodici righe per Pippo, ognuna delle quali corrisponde ad un mese e ogni volta che uno vota pippo si va ad incrementare il numero? Oppure valuto le vostre idee...

    Sonia

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: Come agire? Quale controllo?

    Originariamente inviato da Sonikag
    Ho una form che sarà compliata dagli utenti dove voteranno una determinata cosa. Poniamo che vengano votati i personaggi dei cartoni animati.
    Io vorrei fare un riepilogo mensile dei voti, in quanti hanno votato pippo, in quanti pluto e in quanti paperino.

    Come potrei organizzare il db? Quale controllo è meglio usare per avere un output con in verticale i nomi dei personaggi, in orizzontale i mesi e all'interno il valore delle loro votazioni.

    E' il caso di creare dodici righe per Pippo, ognuna delle quali corrisponde ad un mese e ogni volta che uno vota pippo si va ad incrementare il numero? Oppure valuto le vostre idee...

    Sonia
    sono 2 domande
    1) database
    in una tabella metterei (non ho riflettuto, la butto lì)
    id_personaggio, legato alla tabella personaggi
    data_votazione
    voto, se il voto può essere variabile, altrimenti non serve


    una volta riempita la tabella è facile fare una interrogazione per chiedere il totale dei voti per personaggio per un dato mese e per un dato anno


    2) alla larga da datagrid e datalist. Puoi tentare con un repeater o costruendoti la <table a mano nel codice sottostante

    Si chiamano tabelle Pivot

    Pietro

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    rettifico, può andare bene pure un datagrid

    bisogna mettere pure i totali dei voti nell'ultima colonna


    non è difficile ci vuole un poco di pazienza

    Pietro

  4. #4
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    sai dove posso trovare un esempio?
    Perchè a grandi linee ho pensato al progetto solo che dovrei fare una query per ogni singola cella e mi sembra eccessivo...

    Sonia

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Non ho nessun link a esempi. Se metti tutti id dati in un DataTable, puoi filtrarti i dati cella per cella. Non conosco un metodo migliore.
    Pietro

  6. #6
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Non ho capito :master:

    a me serve una cosa simile:

    --------------------------
    -------- gen - feb - mar - mag
    pippo | 5 | 8 | 6 |...
    pluto | 8 | 2 | 7 |...
    minnie | 1 | 4 | 8 |...

  7. #7
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Sarebbe troppo pesante fare una query per ogni cella?

    Sonia

  8. #8


    Ma hai pensato ad un modo per ottimizzare le tabelle? Cosa hai scelto come struttura del database?

    Personalmente, se non è assurdo nel tuo caso, io costruirei una tabella con questi campi:

    nome personaggio
    voto gennaio
    voto febbraio
    voto marzo
    ...
    voto dicembre

    Quindi con una sola query puoi prendere tutti i dati che vuoi...

    Ciao
    AZ [Microsoft - .NET MVP]
    Mia Home page: http://ciclismo.sitiasp.it
    Asp.Net community: http://www.aspitalia.com
    Il mio blog: http://blogs.aspitalia.com/az

  9. #9
    Io lo farei così:

    Tabella Personaggi(id, nome) supponiamo
    Tabella Voti (PersonaggioId, Mese, Voto)

    Da voti puoi sapere tutto con l'sql... medie, somme ecc. ecc.
    Marco Tibaldeschi
    www.dontbenegative.it

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da AndreaZani


    Ma hai pensato ad un modo per ottimizzare le tabelle? Cosa hai scelto come struttura del database?

    Personalmente, se non è assurdo nel tuo caso, io costruirei una tabella con questi campi:

    nome personaggio
    voto gennaio
    voto febbraio
    voto marzo
    ...
    voto dicembre

    Quindi con una sola query puoi prendere tutti i dati che vuoi...

    Ciao

    Adesso non sono in ufficio e non posso accedere al server Oracle. Ma ho un caso reale. Si tratta di far vedere, per un dato utento connesso, la sua giornaliera, di quel mese e per quell'anno.
    La giornaliera si presenta come una tabella pivot. In alto ci sono i giorni, varibili da 28 a 31 secondo l'anno e il mese. A sinistra, nella prima colonna ci sono i nomi delle commesse. All'incrocio tra commessa e giorno, vi sono le ore lavorate. Naturalmente l'ultima colonna a destra e l'ultima riga in basso sono per i totali.
    Premesso che non ricordo bene, ma una cosa è certa. La tabella era a struttura verticale, con i campi:
    id_utente
    id_commessa
    data
    ore

    La visualizzazione nel computer dell'utente viene fatta tramite una paginetta asp (NO C### SED VBSCRIPT) ed è stata fatta non da una persona esperta ma da una mia collega, alla sua prima esperienza in asp (ma non nella logica di programmazione )
    E la cosa funziona e pure bene direi.

    Perciò, a Sonia, ma che te frega, tanto è il motore che lavora. Guarda che certi colcoletti che per un umano sono difficili, il computer li esegue molto bene.

    Comunque, se trovi un modo per farti le tabelle pivot migli
    ore, ti prego di farne partecipe pure noi. Ciao

    ps. aggiungo l'uso delle StoredProcedure, che limitano notevolmente il tempo di dialogo tra client e server.
    Pietro

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.