[ vladapetr @ 28.07.2011. 01:13 ] @
Ovako:
imam aplikaciju koja je radjena u CI, mada mislim da to ovde nije presudno. U bazi je tabela u kojoj su neki podaci o korisnicima, kao i datum i vreme kada su ti podaci upisani. Datum i vreme se nalaze u koloni application_date, tipa datetime. Na odredjenoj stranici aplikacija izbaci listu svih upisanih korisnika, sa svim podacima. Sve do sada radi ok.

Hteo sam da ubacim opciju da mogu da izlistam samo korisnike koji su upisani u odredjenom vremenskom intervalu. Dodao formu sa 2 textfield-a u koja se upisuje datum i vreme, klikom na submit pozivam funkciju koja na osnovu te 2 vrednosti uradi query baze. Ali, nece

Naime, u odgovarajucem kontroleru sam ubacio funkciju:
Code:
function dateQuery()
    {

        $data           = array();
        $date1 = date('Y-m-d H:i:s', strtotime($this->input->post('date1')));
        $date2 = date('Y-m-d H:i:s', strtotime($this->input->post('date2')));
        
        $query          = $this->db->query('SELECT * FROM `data` WHERE application_date BETWEEN "$date1" and "$date2"');
        $db_data        = $query->result();
        
        $data['db_data']= $db_data;

        $this->parser->parse('admin/queryContent', $data);
    }


Funkcija index() u tom kontroleru izgleda identicno ovoj f-ji, samo nema definisanje $date1 i $date2, a kao view u parseru poziva samo "content"(koji je identican ovom "queryContent" view-u). Sve to radi ok, ali ovaj deo sa vremenskim intervalom - ne radi.

Problem je izgleda u query-u. Ako ostavim samo ('SELECT * FROM `data`') izbaci celu tabelu.
$date1 je npr 1. februar, $date2 je 1. maj. Imam korisnike upisane, i pre, i izmedju, i posle oba datuma. Stavim query npr ('SELECT * FROM `data` WHERE application_data > "$date1" ') i opet izbaci celu tabelu. Stavise, u taj query koji god datum da stavim(cak i iz buducnosti) uvek izbaci celu tabelu, a isto tako - koji god datum da stavim u query koji glasi application_data < "$date1" ne izbaci nista, ma koji datum da stavim kao $date1 !?

Kada uradim var_dump od $date1 i to posle query-a dobijem da je to string(19) koji glasi npr "2011-02-01 00:00:01", dakle - istog formata kojeg je i kolona application_date.
Sve deluje kako treba i trebalo bi da radi, ali ne radi...

U cemu je fazon?
Hvala unapred


[ Miroslav Ćurčić @ 28.07.2011. 04:46 ] @
Probaj umesto "$date1" da stavis \''.$date1.'\'
Slicno i za $date2.

Osnove rada sa stringovima.
[ Aleksandar Ružičić @ 28.07.2011. 09:13 ] @
Ili koristi Variable parsing feature:
Code (php):

$this->db->query("SELECT * FROM `data` WHERE application_date BETWEEN '$date1' and '$date2'");
 
[ vladapetr @ 28.07.2011. 12:45 ] @
Hvala veliko, problem resen