This is a bit of a mess. See DW Tutorial: Common Issues with MySQL and PHP #Item 4. Also, it appears that you're using raw input directly into your SQL ( $ch_num = $_POST['ch_no'];). This is asking for trouble with regard to SQL Injection. See the same link above #Item 2.

2. Date Calculation and Format

Note the "UNIX" format, e.g. 2015-10-18. While you can certainly store other formats, they are particularly useless at being sorted in a DB table. Most developers stick to this "Y-m-d" format. Reformatting in PHP on echoing data is trivial.

3. Random Index

Not saying this is wrong. Just don't understand it. Why do you need this to be random? If it is a vanity thing, to not want to start on 1, you can set the incrementer to start on 450,000 - or anything you want.

4. Filename

Again, this is not wrong. Maybe attaching a microtime would be easier than the mt_rand()? It can be useful to notice the order of versions of the same file at a glance.

5. Error Checking

There is no error checking for the file upload 'error' item. You should check to see whether the upload is error-free before continuing with the "save". You do this: $file_error = $_FILES['browse']['error']; but then do nothing with it.