Visualizzazione risultati 1 fino 2 di 2

Discussione: BETWEEN mysql

  1. #1
    Guest

    Predefinito 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
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Se OraInizio e OraFine sono i due campi di inizio e fine del singolo evento, è esattamente il comportamento atteso dalla query.

    L'"errore" è che stai estraendo gli eventi che, alle ore 13:00 (l'$orainizio inserita nella query, a quanto ho capito), sono già iniziati (perché le 13:00 sono dopo le 12:10) e devono ancora finire (non l'hai specificato, ma probabilmente l'evento finisce dopo le 13:00).

    Se invece ti interessa estrarre gli eventi che iniziano "dall'ora specificata e nell'ora seguente", questa è la query corretta:
    Codice:
    SELECT *
    FROM agenda
    WHERE DataEvento = '$dataevento'
    AND OraInizio BETWEEN '$orainizio' AND '$orainizio' + INTERVAL 1 HOUR
    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •