Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    query con data compresa tra altre due

    Devo recuperare da un db una serie di dati, in base ad una determinata condizione; questa condizione è che il mese passato come variabile sia compreso tra due date contenute nel db.
    Ho provato con questo codice:
    Codice PHP:
    $result mysql_query("SELECT * FROM `offerte` WHERE ('$mesecorrente' BETWEEN `data_in` AND `data_out`) OR ('$mesecorrente' BETWEEN `data_in2` AND `data_out2`) OR ('$mesecorrente' BETWEEN `data_in3` AND `data_out3`) OR ('$mesecorrente' BETWEEN `data_in4` AND `data_out4`) OR ('$mesecorrente' BETWEEN `data_in5` AND `data_ou5t`) OR ('$mesecorrente' BETWEEN `data_in6` AND `data_out6`) ORDER BY `data_in`,`data_in2`,`data_in3`,`data_in4`,`data_in5`,`data_in6` ASC"); 
    Ovviamente, $mesecorrente è la variabile di cui parlo. Per fare il test, gli ho attribuito un valore in questo modo:
    Codice PHP:
    $mesecorrente date("Y-m-d"); 
    Però non mi restituisce nulla!
    Dove sto sbagliando?
    :master:
    metatad
    graphic & web design

  2. #2
    viene da chiedersi cosa c'e' e come e' scritta la data nei vari data_in e data_out. Se poi usi la data corrente tanto vale utilizzare la funzione curdate() di mysql.

    Codice PHP:
     WHERE (CURDATE() BETWEEN `data_in` AND `data_out`).... 

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    la data è una variabile, determinata in base ad una request Ajax...
    Funziona così:
    Codice PHP:
    switch($_REQUEST['action']) {
            case 
    'gennaio':        $mesecorrente "g";break;
            case 
    'febbraio':    $mesecorrente "f";break;
            case 
    'marzo':        $mesecorrente "m";break;
            case 
    'aprile':        $mesecorrente "a";break;
            case 
    'maggio':        $mesecorrente "m2";break;
            case 
    'giugno':        $mesecorrente "g";break;
            case 
    'luglio':        $mesecorrente "l";break;
            case 
    'agosto':        $mesecorrente "a2";break;
            case 
    'settembre':    $mesecorrente "s";break;
            case 
    'ottobre':        $mesecorrente "o";break;
            case 
    'novembre':    $mesecorrente "n";break;
            case 
    'dicembre':    $mesecorrente "d";break;
            }
    if (
    $mesecorrente == "g") {
        
    $mesecorrente =  date("Y-") . "01-31";
    } else if (
    $mesecorrente == "f") {
        
    $mesecorrente =  date("Y-") . "02-29";
    } else if (
    $mesecorrente == "m") {
        
    $mesecorrente =  date("Y-") . "03-31";
    } else if (
    $mesecorrente == "a") {
        
    $mesecorrente =  date("Y-") . "04-30";
    } else if (
    $mesecorrente == "m2") {
        
    $mesecorrente =  date("Y-") . "05-31";
    } else if (
    $mesecorrente == "g2") {
        
    $mesecorrente =  date("Y-") . "06-30";
    } else if (
    $mesecorrente == "l") {
        
    $mesecorrente =  date("Y-") . "07-31";
    } else if (
    $mesecorrente == "a2") {
        
    $mesecorrente =  date("Y-") . "08-31";
    } else if (
    $mesecorrente == "s") {
        
    $mesecorrente =  date("Y-") . "09-31";
    } else if (
    $mesecorrente == "o") {
        
    $mesecorrente =  date("Y-") . "10-31";
    } else if (
    $mesecorrente == "n") {
        
    $mesecorrente =  date("Y-") . "11-30";
    } else if (
    $mesecorrente == "d") {
        
    $mesecorrente =  date("Y-") . "12-31";

    Il formato appare corretto, perchè faccio un echo subito dopo, e mi stampa a video la data esatta (tipo: 2010-01-02) ...
    metatad
    graphic & web design

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    ...e, ovviamente, nei vari campi 'data_in' e 'data_out', che sono in formato date, o c'è una data (tipo 2010-31-03) oppure il campo è settato al valore di default, cioè 0000-00-00 ...
    metatad
    graphic & web design

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    ok, risolto! era un banale errore di battuta nel codice di collegamento al db!!!
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.