PHP function to access a database and return json
This: 

$tables = array(
    "day"        =&gt; "p_day", 
    "month"      =&gt; "p_month"
    ... etc. .....
);

$table = $tables[$user_table];

if(!$table) {
    die(json_encode(array("error" =&gt; "bad table name")));
}


will throw a notice if $user_table is not a valid array key, something you should have already tested. Rewrite as:

$tables = array(
    "day"        =&gt; "p_day", 
    "month"      =&gt; "p_month"
    ... etc. .....
);

if(!array_key_exists($user_table, $tables)) {
    die(json_encode(array("error" =&gt; "bad table name")));
}

$table = $tables[$user_table];


I really hate it when functions die(), and in your case there's no point in that. You could simply do: 

if(!$table) {
    return json_encode(array("error" =&gt; "bad table name"));
}


since the function is expected to return a json formatted string. If you really want to die() you should do that where you call the function and the returned string is an error. Or you could just return false when an error occurs and the raw array when everything works, and when calling the function do something like: 

$result = json_encode(getReport("some_table"));


That way getReport() will be useful even when you don't need json encoded output. But that's up to you and how you actually use it.

As @LokiAstari mentions mysql_* functions are deprecated and should be avoided. I would skip mysqli_* functions too and use PDO which will give you the extra bonus of switching to another database engine if you ever need to and it has a nice OO interface.

For everything else, I'm with @LokiAstari.