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

    appuntamenti in mysql/php

    raga innanzittuto ciao a tutti..ho il seguente problema: premetto che è da un pò che non metto mani su mysql e php e sono un pò arrugginito.

    Malgrado questo,ho realizzato il seguente database in allegato con le varie relazioni per un mio cliente(nello specifico un centro estetico) che non è altro che una agenda elettronica.

    Praticamente quando un cliente prende un appuntamento l'orario X per determinati trattamenti non deve essere selezionabile nel menu a tendina da un altro cliente.

    ES: prenoto il servizio X che dura 90 minuti alle 10:30,il prossimo che prenota NON DEVE visualizzare l'orario in questione per tutta la durata del trattamento(quindi dalle le 10:30,le 11:00,le 11:30 non saranno presenti nel menu a tendina).

    inoltre la tabella APPUNTAMENTO di relazione intermedia ha i campi inizio e fine che hanno rispettivamente VARCHAR(10),e contengono proprio le stringhe con questo format XX:00 (es:10:00)

    Che campi mi consigliate di utilizzare? Esistono funzioni che potrebbero di mysql che potrebbero aiutarmi? Come faccio a fare una query che non mi restituise gli orari in questione? Stavo pensando ad un left join,che ne pensate?
    Immagini allegate Immagini allegate

  2. #2
    nessuno che mi aiuta?

  3. #3
    ...
    MEMENTO AUDERE SEMPER
    Maxxl

    www.maxxl.it

  4. #4
    Ciao io ho realizzato qualcosa di simile con questa soluzione

    Tab APPUNTAMENTI
    Idappuntamento
    Idcliente
    Idtrattamento
    ....
    ....
    ...
    Iddata
    Idorario
    Idtempo


    Idorario è un numero che identifica la posizione in un array di orario
    orario[1]="8:30"
    orario[2]="9:00"
    orario[3]="9:30"
    orario[4]="10:30"
    .....

    facendo in questa maniera hai sia l'orario di inizio che quello di fine con il dato Idtempo
    Idorario=1
    Idtempo=2
    orariofine=orario[Idorario+Idtempo]="9:30"


    quando fai la select per la tendina degli orari disponibili escludi quelli occupati facendo una select nella tabella Appuntamenti
    te lo scrivo non in codice php
    for var =1 to orarioultimo
    se esiste Idorario allora var=var+idtempo
    altrimenti scrivi orario[var]


    poi se hai dei tempi fissi per il tipo di trattamento nella stessa maniera verifichi se c'è anche abbastanza tempo per il trattamento

    spero di esserti stato utile
    MEMENTO AUDERE SEMPER
    Maxxl

    www.maxxl.it

  5. #5
    ragazzi c'è l'ho fatta: sono riuscito a crearla. Il problema è un altro: ho modificato i campi appuntamenti e li ho messi in formato TIME sia inizio che fine. Adesso però insorge un problema.

    Tramite questa query:

    select DATE_FORMAT(fine,'%H:%i') - (select DATE_FORMAT(inizio,'%H:%i') from appuntamento) AS calcolo from appuntamento where data = '2010-12-18'

    sono riuscito a farmi restituire la differenza tra l'inizio e la fine del trattamento(nel caso sia ad esempio le 10:00:00 per il primo e le 12:00:00 per le altre mi restituisce 2). Tuttavia se i record sono più di uno mi restituisce il seguente errore:

    #1242 - Subquery returns more than 1 row

    come faccio dunque a farmi restuire due colonne con le rispettive differenze di orario?. ES: 10:00 - 12:00 : 2 altro record 14:00 17:00 : 3.

    N.B: ho cercato una funzione per fare automaticamente calcoli con gli orari ma non ne ho trovati sulla guida di mysql. Ne esistono o no?

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.