• 27-09-2018, 00:52:49
    #1
    Arkadaşlar Datatable de Server-Side i özelliğini kullanıyorum ve verileri json olarak döndürüyor veritabanından çekip fakat türkçe karakter sorunu var çözümü nedir acaba?

    Sinemium adlı üyeden alıntı: mesajı görüntüle
    tw verin isterseniz özelden bakayım
    Sağolasın hocam çözdü olayı.. Çözüm de şu

    Datatable'de Server-Side özelliğini kullanırken ssp.class.php diye bir dosya içeriye dahil ediyoruz ve orada kendisi tekrar bir db bağlantısı yapıyor orada da utf8 olarak belirtmek gerekiyor.

    static function sql_connect diye aratıp function u

    static function sql_connect ( $sql_details )
    {
    try { $db = @new PDO( "mysql:host={$sql_details['host']};dbname={$sql_details['db']}", $sql_details['user'], $sql_details['pass'], array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES 'UTF8'',PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION) ); $db->exec("set names utf8"); $db->exec("set character_set_client='utf8'"); $db->exec("set character_set_results='utf8'"); $db->exec("set collation_connection='utf8_bin'"); }
    catch (PDOException $e) {
    self::fatal(
    "An error occurred while connecting to the database. ".
    "The error reported by the server was: ".$e->getMessage()
    );
    }
    return $db;
    }
    bu şekilde revize ederseniz düzeliyor.
  • 27-09-2018, 02:18:26
    #2
    türkçe karakter sorunu veritabanında mı çektikten sonra mı
  • 27-09-2018, 09:52:05
    #3
    ztk
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Server-side sınıfınızdaki (muhtemelen ssp.class.php) dosyasındaki filter metodunu aşağıdaki ile değiştirin.
    static function filter ( $request, $columns, &$bindings )
    {
        $globalSearch = array();
        $columnSearch = array();
        $dtColumns = self::pluck( $columns, 'dt' );
     
        if ( isset($request['search']) && $request['search']['value'] != '' ) {
            $str = $request['search']['value'];
     
            for ( $i=0, $ien=count($request['columns']) ; $i<$ien ; $i++ ) {
                $requestColumn = $request['columns'][$i];
                $columnIdx = array_search( $requestColumn['data'], $dtColumns );
                $column = $columns[ $columnIdx ];
     
                if ( $requestColumn['searchable'] == 'true' ) {
                    $binding = self::bind( $bindings, '%'.$str.'%', PDO::PARAM_STR );
                    $globalSearch[] = "CONVERT(`".$column['db']."` USING utf8) LIKE ".$binding;
                }
            }
        }
  • 27-09-2018, 14:50:59
    #4
    Sinemium adlı üyeden alıntı: mesajı görüntüle
    türkçe karakter sorunu veritabanında mı çektikten sonra mı
    Evet hocam..

    ztk adlı üyeden alıntı: mesajı görüntüle
    Server-side sınıfınızdaki (muhtemelen ssp.class.php) dosyasındaki filter metodunu aşağıdaki ile değiştirin.
    static function filter ( $request, $columns, &$bindings )
    {
        $globalSearch = array();
        $columnSearch = array();
        $dtColumns = self::pluck( $columns, 'dt' );
     
        if ( isset($request['search']) && $request['search']['value'] != '' ) {
            $str = $request['search']['value'];
     
            for ( $i=0, $ien=count($request['columns']) ; $i<$ien ; $i++ ) {
                $requestColumn = $request['columns'][$i];
                $columnIdx = array_search( $requestColumn['data'], $dtColumns );
                $column = $columns[ $columnIdx ];
     
                if ( $requestColumn['searchable'] == 'true' ) {
                    $binding = self::bind( $bindings, '%'.$str.'%', PDO::PARAM_STR );
                    $globalSearch[] = "CONVERT(`".$column['db']."` USING utf8) LIKE ".$binding;
                }
            }
        }

    İşe yaramadı hocam



    Yok mu bunun çözümünü bilen bir babayiğit
  • 27-09-2018, 20:28:11
    #5
    tw verin isterseniz özelden bakayım
  • 27-09-2018, 21:05:29
    #6
    Sinemium adlı üyeden alıntı: mesajı görüntüle
    tw verin isterseniz özelden bakayım
    Sağolasın hocam çözdü olayı.. Çözüm de şu

    Datatable'de Server-Side özelliğini kullanırken ssp.class.php diye bir dosya içeriye dahil ediyoruz ve orada kendisi tekrar bir db bağlantısı yapıyor orada da utf8 olarak belirtmek gerekiyor.

    static function sql_connect diye aratıp function u

    static function sql_connect ( $sql_details )
    {
    try { $db = @new PDO( "mysql:host={$sql_details['host']};dbname={$sql_details['db']}", $sql_details['user'], $sql_details['pass'], array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES 'UTF8'',PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION) ); $db->exec("set names utf8"); $db->exec("set character_set_client='utf8'"); $db->exec("set character_set_results='utf8'"); $db->exec("set collation_connection='utf8_bin'"); }
    catch (PDOException $e) {
    self::fatal(
    "An error occurred while connecting to the database. ".
    "The error reported by the server was: ".$e->getMessage()
    );
    }
    return $db;
    }
    bu şekilde revize ederseniz düzeliyor.