Revision: 69266
                            
                                                            
                                    
                                        
Initial Code
                                    
                                    
                                                            
                                    
                                        
Initial URL
                                    
                                    
                                                            
                                    
                                        
Initial Description
                                    
                                    
                                                            
                                    
                                        
Initial Title
                                    
                                    
                                                            
                                    
                                        
Initial Tags
                                    
                                    
                                                            
                                    
                                        
Initial Language
                                    
                                    
                                                    
                        at May 20, 2015 01:54 by brownrl
                            
                            Initial Code
$db = new PDO('sqlite:db/database.sqlite');
$db->sqliteCreateFunction('distance', function () {
    $geo = func_get_args();
    foreach( $geo as $k => $v ) {
        $geo[$k] = deg2rad( $v );
    }
    return round(acos(sin($geo[0]) * sin($geo[2]) + cos($geo[0]) * cos($geo[2]) * cos($geo[1] - $geo[3])) * 6378.14, 3);
}, 4);
$lat = ( isset( $_GET['lat'] ) ) ? floatval( $_GET['lat'] ) : 50.5039;
$lng = ( isset( $_GET['lng'] ) ) ? floatval( $_GET['lng'] ) : 4.46994;
$pp = 25;
$offset = 0;
if( isset( $_GET['offset'] ) && ! empty( $_GET['offset'] ) ) {
    $offset = $pp * intval( $_GET['offset'] );
}
$q = "SELECT oc.content_id,
    distance(
        (
            SELECT value_text FROM contents
            INNER JOIN contentvalues ON value_content_id = content_id
            INNER JOIN typefields ON value_field_id = field_id
            WHERE field_alias = 'latitude' AND content_id = oc.content_id
        ) , (
            SELECT value_text FROM contents
            INNER JOIN contentvalues ON value_content_id = content_id
            INNER JOIN typefields ON value_field_id = field_id
            WHERE field_alias = 'longitude' AND content_id = oc.content_id
        ) , $lat , $lng ) AS dis
        FROM contents AS oc WHERE ".time()." BETWEEN content_publish_start_date AND content_publish_end_date ".
        "ORDER BY dis ASC LIMIT $offset , $pp";
                                Initial URL
http://www.itsgotto.be/cv
Initial Description
This is damn crazy! sQlite does not have all the trig functions need to do distances. So here is how you load that into sQlite on the fly.
Initial Title
Distance in SQLITE
Initial Tags
php
Initial Language
PHP