Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Struttura dati

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    34

    Struttura dati

    Salve a tutti!
    Su Mysql ho una tabella di nome medico con un campo chiamato disponibilità, che rappresenta i giorni della settimana.

    Come faccio a rappresentare con php la disponibilità del medico? Cioè devo sapere, ad esempio, se il medico è disponibile il Lunedì, Martedì e Sabato?

    Nel campo disponibilità posso inserire solo un valore, a me serve più di uno....

    Che tipo di struttura dati devo utilizzare? Un array?

    Grazie!

  2. #2
    Ciao,
    ci sono vari modi....
    che tipo di campo è il campo disponibilità della tabella?
    una char? un int? o puoi scegliere tu?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    34
    posso scegliere io.

  4. #4
    Beh allora una delle (tante) possibilità potrebbe essere mettere il campo a char e scriveci dentro i giorni di disponibilità separati da virgola o punto e virgola
    es:
    lunedì;giovadì;sabato

    quando poi in php leggerai quel campo dalla tabella, potrai usare la funzione explode() e ricavarti un array contenete i giorni della settimana di disponibilità da visualizzare...

  5. #5
    Originariamente inviato da edotax
    posso scegliere io.
    Se puoi scegliere tu posso capire che hai anche accesso ad eventuali modifiche al DB. A questo punto la cosa più giusta da fare è quella di creare una nuova tabella in cui inserirai i giorni della settimana ed una tabella di relazione che lega tramite ID questa tabella con la tabella medico. A questo punto sarai in grado di assegnare più giorni della settimana ad un particolare medico.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Oppure si può spostare la complessità dal DB al PHP memorizzando nella tabella del medico un campo di un byte.

    Quindi codificherai il byte mappando al bit di peso inferiore il lunedì e procedendo fino al bit di peso 6 la domenica. il bit 8 (di peso 7) resta inutilizzato

    a questo punto avrai
    codice:
    Peso Bit | Decimale | Valore Mappato  
          0  |     1    | Lunedì
          1  |     2    | Martedì
          2  |     4    | Mercoledì
          3  |     8    | Giovedì
          4  |    16    | Venerdì
          5  |    32    | Sabato
          6  |    64    | Domenica
          7  |   128    | ** NON UTILIZZATO **
    Le princiapli attività svolte in PHP potrebbero essere:
    Codice PHP:
    //Supponiamo che $gg contenga il valore byte proveniente dal DB o da
    //memorizzare nel DB

    //Verifica se un dato giorno è settato, con $num_giorno contenente il peso bit corrispondente
    //al valore  mappato
    if($gg pow(2,$num_giorno))...

    //Settare un giorno $gg per successivvo aggiornamento DB senza toccare gli altri valori
    $gg &= pow(2,$num_giorno)

    //Settare più valori in colpo
    $ggpow(2,1) & pow(2,3) & pow(2,4); 
    Al posto della funzione pow puoi utilizzare direttamente i valori decimali della tabella di mapping, ed utilizzre gli array di PHP per costruirti la tabella di mapping in modo da ottenere il valore decimale e quello logico (nome del giorno) in base all'indice dell'array (peso in bit)

    Buon divertimento!

    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

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.