Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: BETWEEN mysql

  1. #1

    BETWEEN mysql

    Salve ho un problemino con il between.

    Sto cercando di effettuare una agenda visibile per giorno, settimana e mese.

    Il problema me lod a nella visualizzazione per settimana:

    Codice PHP:
    $dataevento=(int)(date("N") - $x); 
    $dataevento=date("Y-m-d", (int)($calendar - ((60 60 24) * $dataevento))); 
    $arrdata=explode("-",$dataevento); 
    $orainizio mktime($hour,0,0,$arrdata[1],$arrdata[2],$arrdata[0]); 

    $QueryWeek=mysql_query("SELECT * FROM agenda WHERE DataEvento='$dataevento' AND '$orainizio' BETWEEN OraInizio AND OraFine") or die (mysql_error()); 
    while(... 
    allora i dati me li estrae ma il problema è questo se ce un appuntamento che inizia esempio alle 12:00 mi visualizza l'evento bene dalle 12 fino all'orario di fine appuntamento tipo 14:00.
    Ma se invece l'appuntamento inizia alle 12:10 oppure alle 12:30 insomma oltre le 12:00 mi visualizza l'appuntamento partendo dalle 13:00.

    come mai mi ma questo visto che 12:10 o 12:30 si trova nel confronto del between?

  2. #2
    non sei chiarissimo perche' parli di dataora mentre presenti un unix timestamp. Any way... consideriamo solo l'orario come da te proposto dove tu poni le ore 12:00 come si desume anche dal mktime dove minuti e secondi sono a zero.

    where .... '12:00' between 12:10 and 14:00

    ovvio che non ci sara', mentre 13:00 si. Chi deve essere all'interno dei valori min-max del confronto e' quello che tu proponi e non il contenuto del campo.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    il between può essere fatto anche tra 2 campi (INT)?

  4. #4
    Originariamente inviato da techno
    il between può essere fatto anche tra 2 campi (INT)?
    Basterebbe fare una semplice prova!

    BETWEEN
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    avrei bisogno di un vostro aiutino.

    Sto effettuando un agenda e dovrei fare un controllo.
    Ho 3 campi nel database "DateeEvento", "OraInizio", OraFine"
    ora dovrei fare il modo che un nuovo evento che inserisco non venga ad accavallare uno già esistente.

    Come posso fare?

  6. #6
    o provato così:
    Codice PHP:
    "SELECT * FROM agenda WHERE IDUtente='$idutente' AND OraInizio BETWEEN '$unix_start' AND '$unix_end' OR OraFine BETWEEN '$unix_start' AND '$unix_end'" 
    ma nulla mi salva l'evento invece di darmi l'errore.

  7. #7
    Devi eseguire una query del tipo (per la data in questione):

    codice:
    SELECT * FROM agenda WHERE NOT (OraInizio >= '$inizio' OR OraFine <= '$fine')
    Dove $inizio e $fine sono gli orari di inizio e fine in formato HH:mm:ss.
    Se la query NON restituisce risultati allora l'intervallo orario è libero e puoi effettuare la insert.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    aspetta ma se nel database ho i seguenti orari:
    |ora_inizio|ora_fine|
    |12:40 |13:00 |
    |16:00 |18:00 |
    |19:30 |20:00 |

    ed io inserisco queste date:
    unix_start=15:00
    unix_end=18:30

    come vedi questo orario accavalla quelle 16:00 / 18:00
    e quindi mi deve dare un errore perche cè già un evento in quell'ora.

  9. #9
    I campi OraInizio e OraFine sono campi interi.

  10. #10
    Originariamente inviato da techno
    aspetta ma se nel database ho i seguenti orari:
    |ora_inizio|ora_fine|
    |12:40 |13:00 |
    |16:00 |18:00 |
    |19:30 |20:00 |

    ed io inserisco queste date:
    unix_start=15:00
    unix_end=18:30

    come vedi questo orario accavalla quelle 16:00 / 18:00
    e quindi mi deve dare un errore perche cè già un evento in quell'ora.
    E quindi? La soluzione che ti ho proposto funziona correttamente anche in questo caso!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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.