Sunday, January 7, 2018

Arrange your mysql table's primary ID which is auto increment

What if you have a large MYSQL table where you've used auto increment ID but your ID are not arrange as many of your row deleted. In this case if you want to arrange your ID like fresh one so that it may increase your MYSQL performance.

First create a blank duplicate table where no data exist. If new created table name "table1".

Your main table name is "table".

Now run this query

CREATE TEMPORARY TABLE tmp SELECT * FROM table;
UPDATE tmp SET id=NULL;
INSERT INTO table1 SELECT * FROM tmp;
DROP TABLE tmp;

You'll see the new "table1" table copied data from old table with arrange ID. now delete the old table.

That's it. Every easy haaa!!!!




Monday, January 1, 2018

Update A Joined Table Mysql

I want to update a table in a statement that has several joins.
The multi-table UPDATE syntax in MySQL is like blew as sample

UPDATE tableA a
JOIN tableB b
   ON a.a_id = b.a_id
JOIN tableC c
   ON b.b_id = c.b_id
SET b.val = a.val+c.val
WHERE a.val > 10
    AND c.val > 10;


Tuesday, December 26, 2017

Force to use/redirect https / SSL Codeigniter

There are two easy way to redirect/force to use https / SSL in Codeigniter.
1. Using .htaccess
2. Using codeigniter hook function.

Method One
1. Change base_url in your config from application/config/config.php file:
     $config['base_url'] = 'https://www.my-site.com/';

2. Redirect incoming traffic from http to https:
    RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Method Two

Open config file from location application/config/config.php and enable or set hooks to true like this:
$config['enable_hooks'] = TRUE;
Then create a new file named hooks.php inside the config folder (i.e. application/config/hooks.php) and add the following code in it:
$hook['post_controller_constructor'][] = array(
    'function' => 'redirect_ssl',
    'filename' => 'ssl.php',
    'filepath' => 'hooks'
);
Now create a new directory named hooks inside the application folder (i.e. application/hooks) and then create a new file named ssl.php inside the hooks folder (i.e. application/hooks/ssl.php).
Add the following code in the ssl.php file:

function redirect_ssl() {
    $CI =& get_instance();
    $class = $CI->router->fetch_class();
    $exclude =  array('client');  // add more controller name to exclude ssl.
    if(!in_array($class,$exclude)) {
        // redirecting to ssl.
        $CI->config->config['base_url'] = str_replace('http://', 'https://', $CI->config->config['base_url']);
        if ($_SERVER['SERVER_PORT'] != 443) redirect($CI->uri->uri_string());
    } else {
        // redirecting with no ssl.
        $CI->config->config['base_url'] = str_replace('https://', 'http://', $CI->config->config['base_url']);
        if ($_SERVER['SERVER_PORT'] == 443) redirect($CI->uri->uri_string());
    }
}

In conclusion method one is the best and fasted.

Total Pageviews