Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17
  1. #11
    Mi spieghi perchè, quello che scrivo adesso "è l'esatto contrario" ??

    Ti avevo detto cha al posto di data_in e data_out nella tua query:

    SELECT * FROM `offerte` WHERE ('$mydata' BETWEEN `data_in` AND `data_out`)

    ci andavano delle date!

    Che differenza fa con quanto scritto dopo?

    SELECT * FROM table WHERE data_db BETWEEN `2010-08-15` AND `2010-08-19`

    Boo!

  2. #12
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Caspita, non te ne accorgi?
    1 versione:
    SELECT * FROM `offerte` WHERE ('$mydata' BETWEEN `data1` AND `data2`)
    dove $mydata è una variabile mentre quelle indicate in verde dovrebbero essere due date stabilite da me.
    Intanto, non si capisce così cosa chiederei al db... se una mia variabile è compresa tra due date che do io e non cerco nel db? Mah...
    2 versione:
    SELECT * FROM table WHERE data_db BETWEEN `2010-08-15` AND `2010-08-19`
    dove data_db è una data presente nel database.
    A te sembra la stessa cosa???
    metatad
    graphic & web design

  3. #13
    sinceramente a questo punto non capisco piu' che date ci sono ne da un lato ne dall'altro. E quindi soprassiedo sulle date fin che non vedro' qualcosa di piu' chiaro ed esplicito come richiesto prima

    La domanda di chiarimento che faccio ora e': Ma se usi il group by id_hotel potrai ricevere solo un record per ogni hotel. Se per caso tu ne avessi due di record riceveresti solo il primo che trova. Hai piu' record per lo stesso id_hotel oppure ogni hotel ne ha uno solo?

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

  4. #14
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Si, per una svista ho ri-postato la query precedente, che mi serve ad altro...
    quella giusta è la prima che ho postato:
    Codice PHP:
    $result mysql_query("SELECT * FROM `offerte` WHERE ('$currentmonth' BETWEEN MONTH(`data_in`) AND MONTH(`data_out`)) AND '$currentyear' <= YEAR(`data_out`) AND `data_out` >= '$today' AND `id_hotel` = '$idh' AND `show_hide` != '$sh' ORDER BY `hotel_pos`,`inter_pos`,`data_in` ASC");
    while (
    $row mysql_fetch_array($result)) { 
    Comunque, ripeto: questa query funziona. Solo nel caso che ci sia un offerta che inizia (ad es.) nel 2010 e finisce nel 2011, non mi restituisce il record.
    É questo il mio problema. Non altro.
    metatad
    graphic & web design

  5. #15
    Utente di HTML.it L'avatar di Enoa
    Registrato dal
    Jul 2005
    Messaggi
    573
    Originariamente inviato da metatad
    Tutto questo, con il mio sistema, funziona perfettamente: il problema sorge, come spiegavo, soltanto quando il periodo dell'offerta si colloca a cavallo tra un anno e l'altro
    A parte gli altri errori che ti sono stati fatti notare, per l'esempio citato tu chiedi al db di restituirti i record che sono compresi tra 12 (dicembre 2010) e 1 (Gennaio 2011), cioè mai , lo sarebbero se il between fosse tra 1 e 12, ma non saresti a cavallo dell'anno
    codice:
    SELECT 1 BETWEEN 12 AND 1; //0
    SELECT 1 BETWEEN 1 AND 12; //1
    SELECT 12 BETWEEN 12 AND 1; //0
    SELECT 12 BETWEEN 1 AND 12; //1
    SELECT 6 BETWEEN 12 AND 1; //0
    SELECT 6 BETWEEN 1 AND 12; //1
    se a te servono le offerte del mese, ad esempio di dicembre, con $mydata='201012' //(date('Ym'))
    codice:
    SELECT * FROM `offerte` WHERE '$mydata' BETWEEN date_format(`data_in`,'%Y%m') AND date_format(`data_out`,'%Y%m')

  6. #16
    Originariamente inviato da Enoa
    se a te servono le offerte del mese, ad esempio di dicembre, con $mydata='201012' //(date('Ym'))
    codice:
    SELECT * FROM `offerte` WHERE '$mydata' BETWEEN date_format(`data_in`,'%Y%m') AND date_format(`data_out`,'%Y%m')
    Direi perfetta analisi e soluzione del problema.

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

  7. #17
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Oh, perfetto!... Era proprio questo il passaggio logico che mi sfuggiva, e quindi non riuscivo a mettere a fuoco nessuna soluzione...
    Grazie 1000 Enoa!!!
    metatad
    graphic & web design

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 © 2026 vBulletin Solutions, Inc. All rights reserved.