Php Datatable Kullanımı

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    WildWamqire
    WildWamqire's avatar
    Kayıt Tarihi: 06/Mart/2011
    Erkek

    Merhabalar 

    https://www.datatables.net/

    bu sitedeki plugini üyeleri listelemek için kullanıyorum   Mysqlden json çıktısını alıyorum ve bu plugin ile listelemesini yaptıyorum. 

    Şimdi ypamak istediğim şey üyeyin kayıt tarihi uniz formatında ben bunu  phpdeki  timeTr fonksiyonuna nasıl bağlayabilirim.

    yani unix formatındaki tarihi  çevirmek istiyorum. Varmı bilgisi olan veya kullanan?

     

    php tarafı : http://datatables.net/development/server-side/php_mysql 

    WildWamqire tarafından 11/Ağu/15 03:25 tarihinde düzenlenmiştir

    Abure cubure subure dubure re re re tey tey tey
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    hipokondriyak
    hipokondriyak's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek

    şahaneymıs hocam kullanayıım ben bunu kurcalayım format detayını bılemeyecegım 


    Homo sapiens, yaşamak için, diğer canlıların yaşamasına muhtaç; obligat parazit türüdür. "Sen olursan boş bardak , sana olur koyan çok su. a.g."
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    tarzan
    tarzan's avatar
    Kayıt Tarihi: 30/Mart/2007
    Erkek

    http://codepad.org/oaevrkUz

    Boyle cevirebilirsin. Yada veritabanina kayit ederken formatini phpmyadmin deki tablo yaratirken kullanilan date formati gibi kaydet. Sonra cekerken bu sorun ile ugrasmazsin. Yani bu islemi baslangicta yaparsin, jsondan gelen veri hazir ciktin olur.


    Çalışmadan, yorulmadan, öğrenmeden rahat yaşama yollarını itiyat haline getiren milletler; önce haysiyetlerini, sonra istikballerini daha sonra da hürriyetlerini kaybetmeye mahkumdurlar. M. Kemal Atatürk
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    WildWamqire
    WildWamqire's avatar
    Kayıt Tarihi: 06/Mart/2011
    Erkek

    İşin kafa karıstıcı tarafı bu sql sorguları fonksiyon içinde

    Misal

    $kolonlar = array('uye_id','uye_kadi', 'uye_email', 'uye_ip'); 

    sorgu kolonlarını arraydan çekiyorum. 

       $output = array(

            "sEcho" => @intval($_GET['sEcho']),

            "iTotalRecords" => $iTotal,

            "iTotalDisplayRecords" => $iFilteredTotal,

            "aaData" => array()

     

        );

     

    bu sekildede çıktısını yazdırımyorum ne ypatısay unix çevirme fonksiyonunu uygulayamadım.

    php tarafı : http://datatables.net/development/server-side/php_mysql 

    WildWamqire tarafından 11/Ağu/15 03:25 tarihinde düzenlenmiştir

    Abure cubure subure dubure re re re tey tey tey
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PcK0
    PcK0's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek

    timeTr ile türkçe zamandan mı bahsediyorsun bilemedim ama klasik devam edelim Türkçeye çevirmesi kolay.

    Kodu:

    <?php
    
    // Konumumuzu belirtmeliyiz yoksa hesaplamada serverlar arası sıkıntı çıkıyor.
    // Localhostta bir sıkıntı yokken serverda sıkıntı çıkabiliyor lokasyondan dolayı.
    // Yaptığı sıkıntı ise saat farkı..
    date_default_timezone_set('UTC');
    
    $unixTimestamp = '1044072306'; // 01 Şubat 2003 04:05:06 anına ait zaman damgası
    $zamanGosterimi = date('Y-m-d H:i:s', $unixTimestamp); // Veritabanlarında kullanılan klasik datetime tipi
    echo $zamanGosterimi; // Sonuç:1
    echo '<br>';
    
    $zamanGosterimi = date('d F Y H:i:s', $unixTimestamp); // İstenen gg AyAdı yyyy SS:dd:ss tipi
    echo $zamanGosterimi; // Sonuç:2
    echo '<br>';
    
    // Türkçe sonuçlar istiyorsak
    $aylarTr = ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran','Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'];
    $aylarEn = ['January','February','March','April','May','June','July','August','September','October','November','December'];
    
    $zamanGosterimi = str_replace($aylarEn, $aylarTr, $zamanGosterimi);
    echo $zamanGosterimi; // Sonuç:3
    echo '<br>';
    
    // Son olarak zaman dilimi içinde örnek yapalım.
    date_default_timezone_set('Europe/Istanbul'); // PHP Türkiye lokasyonuna desteği var.
    $zamanGosterimi = date('d F Y H:i:s', $unixTimestamp);
    echo $zamanGosterimi; // Sonuç:4
    echo '<br>';
    
    $zamanGosterimi = str_replace($aylarEn, $aylarTr, $zamanGosterimi);
    echo $zamanGosterimi; // Sonuç:5
    
    ?>

     

    Çıktısı:

    2003-02-01 04:05:06  // Sonuç:1
    01 February 2003 04:05:06  // Sonuç:2
    01 Şubat 2003 04:05:06  // Sonuç:3
    01 February 2003 06:05:06  // Sonuç:4
    01 Şubat 2003 06:05:06  // Sonuç:5

     

    Kod içersinde kullanılan "Y-m-d H:i:s" ve "d F Y H:i:s" ifadelerini bir yerimizden sallamıyoruz kullanım kılavuzunda var: http://php.net/manual/tr/function.date.php

    PcK0 tarafından 11/Ağu/15 03:38 tarihinde düzenlenmiştir

    Sadece bi imza..
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    WildWamqire
    WildWamqire's avatar
    Kayıt Tarihi: 06/Mart/2011
    Erkek

    @PcK0 

    hayır hocam ondan bahsetmiyorum o fonksiyon mevcut benim yapmak istediğim  başka datatable il e unix geliyor mysql sorugu içinde fonksiyon kullanamıyorum çünkü table sorgusu arraydan geliyor. senden önceki mseajı inclersne görürüsn hocam.


    Abure cubure subure dubure re re re tey tey tey
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PcK0
    PcK0's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek

    Tamam işte yaz bakalım böyle kodu bir ekrana ne bastığını gör. Çok kompleks değilse senin için her yerde kullanmayacaksan burada ilgili unixtime'ı datetime'a çevirip tekrar $row[..] içine aktaracaksın.

        while ( $aRow = mysql_fetch_array( $rResult ) )
        {
            $row = array();
            for ( $i=0 ; $i<count($aColumns) ; $i++ )
            {
                if ( $aColumns[$i] == "version" )
                {
                    /* Special output formatting for 'version' column */
                    $row[] = ($aRow[ $aColumns[$i] ]=="0") ? '-' : $aRow[ $aColumns[$i] ];
                }
                else if ( $aColumns[$i] != ' ' )
                {
                    /* General output */
                    $row[] = $aRow[ $aColumns[$i] ];
                }
            }
            // Bu kısım
            echo('<pre>');
            print_r($row);
            echo('</pre>');
            die();
            // Bu kısım Son
            $output['aaData'][] = $row;
        }
         
        echo json_encode( $output );

     


    Sadece bi imza..
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hybris
    Hybris's avatar
    Kayıt Tarihi: 12/Haziran/2007
    Erkek

    json olarak vermek zorunda değilsin. normal table <td> <tr> olarak bastığın tabloya da init edebiliyosun.

     


    agile isn’t how fast you can go, it’s how fast you can turn.
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PcK0
    PcK0's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek

    tr td ile aktarım boyutları büyüyor. Verdiğim en son kod örneği datatable'ın kendi kodundan.

    Hani o şekil çalışmasa bile kodu, en son output json'a çevrilmeden önce ilgili kayıtları rahatlıkla yakalayabilir.


    Sadece bi imza..
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    WildWamqire
    WildWamqire's avatar
    Kayıt Tarihi: 06/Mart/2011
    Erkek
    PcK0 bunu yazdı

    tr td ile aktarım boyutları büyüyor. Verdiğim en son kod örneği datatable'ın kendi kodundan.

    Hani o şekil çalışmasa bile kodu, en son output json'a çevrilmeden önce ilgili kayıtları rahatlıkla yakalayabilir.

    Array
    (
        [0] => 1
        [1] => admin
        [2] => wildwamqire@gmail.com
        [3] => 1439242691
    )

    sonuc bu çıktı hocam

    Abure cubure subure dubure re re re tey tey tey
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    WildWamqire
    WildWamqire's avatar
    Kayıt Tarihi: 06/Mart/2011
    Erkek

    Herkese çok teşekkürler şu şekilde çözdüm

    https://codeload.github.com/DataTables/DataTables/zip/master 

     

    buradan dosyası indiriyoruz.

    js tarafı 

    $(document).ready(function() {
      $('#uyeler').datatable( {
            "processing": true,
            "serverSide": true,
            "ajax": "uyeler_ajax.php?tip=uyeler",
            "columns": [
                { "data": "uye_id" },
                { "data": "uye_kadi" },
                { "data": "uye_email" },
                { "data": "uye_songiris" }
            ],
    		"order": [[ 0, "desc" ]],
        } );
    } );

     

     

    Php tarafı 

    $table = 'tc_uyeler';
    $primaryKey = 'uye_id';
    $columns = array(
        array( 'db' => 'uye_id', 'dt' => 'uye_id' ),
        array( 'db' => 'uye_kadi',  'dt' => 'uye_kadi' ),
        array( 'db' => 'uye_email',   'dt' => 'uye_email' ),
        array(
            'db'        => 'uye_songiris',
            'dt'        => 'uye_songiris',
            'formatter' => function( $d, $row ) {
                return timeTR(date("Y-m-d H:i:s",$d));
            }
        )
    	);
    
       $sql_details = array(
        'user' => $dbss['user'],
        'pass' => $dbss['pass'],
        'db'   => $dbss['name'],
        'host' => $dbss['host']
    );
    
    require( 'ssp.class.php' );
     
    echo json_encode(
        SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns )
    );

     

     edit: sanırsam kodlardaki tagları yakalıyor tbt :)

     

    WildWamqire tarafından 11/Ağu/15 04:43 tarihinde düzenlenmiştir

    Abure cubure subure dubure re re re tey tey tey
Toplam Hit: 2031 Toplam Mesaj: 13
php mysql datatable