Tolong pilih kategori sesuai, jenis posting (diskusi atau bukan) dan sertakan tag/topik yang sesuai seperti komputer, java, php, mysql, dll. Promosi atau posting tidak pada tempatnya akan kami hapus!
- Bagi Anda yang ingin mendaftar, baca link berikut:
http://diskusiweb.com/discussion/50491/how-to-registrasi-diskusiweb-com-baca-ini-terlebih-dahulu
- Cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com
- Cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

masalah query

$q = $this->db
                               ->select('*')
                               ->where("updated_date BETWEEN '".$start."' AND '".$end."'")
                               ->get('tb_mst_country');

                    if($q->num_rows()>0)
                    {
                        $country_update = $this->api_model->get_country_update()->result();
                        $this->response($country_update);
                    }
                    else
                    {
                        echo "access denied";
                    }


klo :
start=2015-03-24 00:00:00
end=2015-03-26 05:08:35

dia baca yg ini :

if($q->num_rows()>0)
                    {
                        $country_update = $this->api_model->get_country_update()->result();
                        $this->response($country_update);
                    }

klo :

start=2015-03-24
end=2015-03-26

dia baca yg ini :

 else
                    {
                        echo "access denied";
                    }

db : http://postimg.org/image/g4cxgs9lh/




:-?


mohon pencerahannya :D

Comments

  • lha wong isi field nya emang DATETIME

    ya value pembandingnya juga mesti DATETIME

    kalo kagak ada value TIME nya, bikin aja nilai default yg bener ...

    misal jadi :

    start=2015-03-24 00:00:00
    end=2015-03-26 23:59:59

    yg bold itu elo bikin sendiri kalo batas nya kagak ada TIME nya
  • edited May 2015
    klo aku coba :

    SELECT * FROM tb_mst_country WHERE updated_date BETWEEN '2015-03-24' AND '2015-03-26'

    di db bisa jalan

    klo dikodingan gak bisa

    ini yg membingungkan

    yg diminta harus ini :

    start=2015-03-24
    end=2015-03-26

    apa pke fungsi explode/substr ya?



    :-?
  • coba elo output kan query terakhir yg dieksekusi
  • SELECT *
    FROM "tb_mst_country"
    WHERE "updated_date" BETWEEN '2015-03-24' AND '2015-03-26'

    ini klo di coba di db bisa jalan
  • ada record yg terambil ?

    bukan bisa dijalankan tanpa error atau tidak
    tapi, bener ada record yg berhasil di SELECT ?
    berapa jumlah record yg diperoleh ?
  • tanda "..." juga sudah elo coba buat diikutkan ?

    itu hasil echo query terakhir yg di eksekusi ada "..." nya
  • edited May 2015
  • edited May 2015
    gw kagak tau yg salah ci nya atau php nya ...
    tapi bisa elo testing langsung pake script sederhana buat memastikan

    <?php
    $conn = pg_connect('host=localhost port=5432 dbname=xxx user=xxx password=xxx');

    $result = pg_query($conn, 'SELECT * FROM "tb_mst_country" WHERE "updated_date" BETWEEN \'2015-03-24\' AND \'2015-03-26\'');

    $rows = pg_num_rows($result);

    echo $rows . " row(s) returned.\n";
    ?>

    kalo itu beneran ada hasilnya : php nya bener, ci nya yg bikin masalah
    tapi kalo juga kagak ada hasilnya : dari php nya sendiri sudah bermasalah



    tapi yg pasti, cara ini :

    start=2015-03-24 00:00:00
    end=2015-03-26 23:59:59

    yg bold itu elo bikin sendiri kalo batas nya kagak ada TIME nya

    kagak masalah elo pake
    karena hasilnya bakal sama saja

    yg elo bold itu bisa langsung ditulis di query nya

    ->where("updated_date BETWEEN '".$start." 00:00:00' AND '".$end." 23:59:59'")

    atau bisa juga dgn melihat $start dan $end nya
    kalo sudah ada TIME nya kagak usah ditambah
    tapi kalo kagak ada, baru ditambah
  • edited May 2015
    =D>

    ada hasilnya master
    berarti ci nya yg bermasalah
    tapi yg pasti, cara ini :

    start=2015-03-24 00:00:00
    end=2015-03-26 23:59:59

    yg bold itu elo bikin sendiri kalo batas nya kagak ada TIME nya

    kagak masalah elo pake
    karena hasilnya bakal sama saja
    beda master

    SELECT * FROM "tb_mst_country" WHERE "updated_date" BETWEEN '2015-03-24 00:00:00' AND '2015-03-26 23:59:59'
    http://postimg.org/image/hpct1ylmp/

    SELECT * FROM "tb_mst_country" WHERE "updated_date" BETWEEN '2015-03-24' AND '2015-03-26' http://postimg.org/image/dljdz1mk7/
    atau bisa juga dgn melihat $start dan $end nya
    kalo sudah ada TIME nya kagak usah ditambah
    tapi kalo kagak ada, baru ditambah

    caranya? :D
  • masalah nya itu ini lho mas ...

    elo mencari data ANTARA 2015-03-24 dan 2015-03-26

    pertanyaannya :
    data yg bertanggal : 2015-03-25 ... pasti masuk, lha itu ada di antaranya

    kalo yg bertanggal : 2015-03-24 ? mau diikutkan atau tidak ?

    kalo yg bertanggal : 2015-03-26 ? mau diikutkan atau tidak ?
  • edited May 2015
    klo diantara 24 dan 26 seharusnya cman 25 aja yg diikutkan

    btw, klo mau 24 dan 26 juga diikutkan gimana caranya?


    :-?
  • edited May 2015
    lha bukannya hasil query yg elo coba itu tanggal 24 dan 26 ikut masuk ?

    kalo tanpa menyebut TIME, tanggal 26 kagak ikut

    lha mau elo yg mana ?
  • edited May 2015
    aku coba :

     $q = $this->db
                                   ->select('*')
                                   ->where("updated_date BETWEEN '".$start." 00:00:00' AND '".$end." 23:59:59'")
                                   ->get('tb_mst_country');

    klo di echo :
    SELECT *
    FROM "tb_mst_country"
    WHERE "updated_date" BETWEEN '2015-03-24 00:00:00' AND '2015-03-26 23:59:59'

    klo query itu di jalankan di db : http://postimg.org/image/hpct1ylmp/

    klo ditampilkan di browser dalam bentuk xml, dia cman panggil yg tanggal nya 24

    mirip yg ini :
    SELECT * FROM "tb_mst_country" WHERE "updated_date" BETWEEN '2015-03-24' AND '2015-03-26' http://postimg.org/image/dljdz1mk7/


    :-?
  • edited May 2015
    ci nya beneran parah :))

    kalo kaya begini, beneran bakal kebingungan kalo mau nge-trace query
  • edited May 2015
    waduh :((
    trus gimana master?
    ada solusi? :D
  • ya gw kagak tau mas ...

    secara query sudah bener
    sudah di test juga

    testing pake script php sederhana juga sudah bener

    berhubung gw selalu koding native
    ya gw cuma bisa bilang : php nya baik-baik saja

    lha kalo pake ci hasilnya bisa beda ...
    ini mesti bongkar-bongkar lagi ke dalam ci nya
    atau plugin nya
    capek
  • edited May 2015
    model 1 :

    $start = '2015-03-24 00:00:00'
    $end = '2015-03-26 23:59:59'

    $q = $this->db
                                   ->select('*')
                                   ->where("updated_date BETWEEN '".$start."' AND '".$end."'")
                                   ->get('tb_mst_country');

    tgl yg ditampilkan di xml : http://postimg.org/image/hpct1ylmp/

    model 2 :

    $start = '2015-03-24'
    $end = '2015-03-26'

    $q = $this->db
                                   ->select('*')                   
                                   ->where("updated_date BETWEEN '".$start." 00:00:00' AND '".$end." 23:59:59'")
                                   ->get('tb_mst_country');

    tgl yg ditampilkan di xml : http://postimg.org/image/dljdz1mk7/

    jadi beda hasilnya, padahal klo dilihat query nya sama


    kayaknya bukan masalahnya di ci
    klo masalahnya di ci harusnya model 1 dan model 2, hasilnya sama


    :-?


    btw, cara kerja between itu seperti ini?

    misal diantara tgl 14 dan 17
    yg diambil 14, 15, 16

    misal diantara 20 dan 22
    yg diambil 20, 21

    gitu ya master? :D
  • edited May 2015
    Coba klo modelnya begini

    $q = $this->db->query("select * from tb_mst_country where updated_date BETWEEN ".$start ." AND ".$end." ");


  • harusnya :

    $q = $this->db->query("select * from tb_mst_country where updated_date BETWEEN '".$start." 00:00:00' AND '".$end." 23:59:59'");

    tapi sama aja
  • well .gw dah lama gk make CI.. dah migrasi ke Laravel.. CI dah gk dipegang sama developer aslinya.
    seingat gw, beda metode jalanin active record.. beda hasilnya..

    klo model active record nya gini gmn:

    $this->db->where("update_date >=", $start);
    $this->db->where("update_date <=", $end);
    $q = $this->db->get("tb_mst_country");
  • koding model elo itu sebenernya kaya apa to ?
  • edited May 2015
    koding model elo itu sebenernya kaya apa to ?
    function get_country_update()
        {
            $query = "SELECT *
                      FROM tb_mst_country
                      WHERE updated_date BETWEEN '".$_GET['start']."' AND '".$_GET['end']."'
                      ORDER BY id";
            return $this->db->query($query);
        }

    aku gak yakin, masalahnya di modelnya :D
    well .gw dah lama gk make CI.. dah migrasi ke Laravel.. CI dah gk dipegang sama developer aslinya.
    seingat gw, beda metode jalanin active record.. beda hasilnya..

    klo model active record nya gini gmn:

    $this-&gt;db-&gt;where("update_date &gt;=", $start);
    $this-&gt;db-&gt;where("update_date &lt;=", $end);
    $q = $this-&gt;db-&gt;get("tb_mst_country");
    aku benerin jadi :

    $this->db->where("updated_date >=", $start." 00:00:00");
                        $this->db->where("updated_date <=", $end." 23:59:59");
                        $q =  $this->db->get("tb_mst_country");

    hasil echo nya klo dijalankan di db, bisa tampil

    cman di xml, datanya kosong
  • dan elo panggil dgn url kaya apa ?
  • oiya, di model nya belum aku tambahin :
    00:00:00 dan 23:59:59


    :D
  • edited May 2015
    bikin script kecil,
    isi ini :

    <?php
    $conn = pg_connect('host=localhost port=5432 dbname=xxx user=xxx password=xxx');

    $result = pg_query($conn, 'SELECT * FROM "tb_mst_country" WHERE "updated_date" BETWEEN \''.$_GET['start'].' 00:00:00\' AND \''.$_GET['end'].' 23:59:59\' ORDER BY id');

    echo '<pre>';
    while ($row = pg_fetch_row($result)) {
      print_r($row);
    }
    echo '</pre>';
    ?>

    panggil : /script.php?start=2015-03-24&end=2015-03-26

    apa pun yg muncul di browser posting kemari
  • edited May 2015
    udah nemu master :-bd
    oiya, di model nya belum aku tambahin :
    00:00:00 dan 23:59:59


    :D
  • btw, klo ini :

    SELECT * FROM "tb_mst_country" WHERE "updated_date" BETWEEN '2015-03-24' AND '2015-03-26'

    klo aku coba di mysql, dia panggil : 24,25,26,27
    klo aku coba di postgre, dia panggil : 24,25.26



    :-?
  • edited May 2015
    makanya di depan sudah gw tanyain to ...

    mau elo yg mana ?
    masalah nya itu ini lho mas ...

    elo mencari data ANTARA 2015-03-24 dan 2015-03-26

    pertanyaannya :
    data yg bertanggal : 2015-03-25 ... pasti masuk, lha itu ada di antaranya

    kalo yg bertanggal : 2015-03-24 ? mau diikutkan atau tidak ?

    kalo yg bertanggal : 2015-03-26 ? mau diikutkan atau tidak ?
    lha bukannya hasil query yg elo coba itu tanggal 24 dan 26 ikut masuk ?

    kalo tanpa menyebut TIME, tanggal 26 kagak ikut

    lha mau elo yg mana ?

  • edited May 2015
    o jadi di sesuaikan dengan db nya

    klo postgre :
    $q = $this->db->query("select * from tb_mst_country where
    updated_date BETWEEN '".$start." 00:00:00' AND '".$end." 23:59:59'");

    klo mysql :
    $q = $this->db->query("select * from tb_mst_country where updated_date BETWEEN '".$start."' AND '".$end."'");
  • edited May 2015
    o jadi di sesuaikan dengan db nya

    klo postgre :
    $q = $this->db->query("select * from tb_mst_country where
    updated_date BETWEEN '".$start." 00:00:00' AND '".$end." 23:59:59'");

    klo mysql :
    $q = $this->db->query("select * from tb_mst_country where updated_date BETWEEN '".$start."' AND '".$end."'");


    oh..ya..anyway..penggunaan tanda kutip juga mempengaruhi juga pada CI.

    mantaplah.. ayo migrasi ke Laravel bro.. biar sama-sama diskusi..hehe..^_^

  • besok2 aja bro, klo udah migrasi ke laravel
    soalnya, sekarang masih pke ci :D
Sign In or Register to comment.