title: Using PHP to generate CSV file from MySQLi is saving but not asking to download
body: <p>So my following code generated a CSV based on specified tables and generates file and saves to downloads/filename.csv however its not asking the user to download once its generated. Any ideas why?</p>
  
  <p>Here is the code:</p>
  
  <p>PHP</p>
  
  <pre><code>    header("Content-type: text/csv"); 
  
          // Connect to the database
          $mysqli = new mysqli(DATABASE_HOST, DATABASE_USER, DATABASE_PASS, DATABASE_NAME);
  
          // output any connection error
          if ($mysqli-&gt;connect_error) {
              die('Error : ('.$mysqli-&gt;connect_errno .') '. $mysqli-&gt;connect_error);
          }
  
          $tables = array('invoices', 'customers', 'invoice_items'); // array of tables need to export
  
          $file_name = 'invoice-export-'.date('d-m-Y').'.csv';   // file name
          $file_path = 'downloads/'.$file_name; // file path
  
          $file = fopen($file_path, "w"); // open a file in write mode
          chmod($file_path, 0777);    // set the file permission
  
          // loop for tables
          foreach($tables as $table) {
              $table_column = array();
              $query_table_columns = "SHOW COLUMNS FROM $table";
  
              // fetch table field names
              if ($result_column = mysqli_query($mysqli, $query_table_columns)) {
                  while ($column = $result_column-&gt;fetch_row()) {
                      $table_column[] = $column[0];
                  }
              }
  
              // Format array as CSV and write to file pointer
              fputcsv($file, $table_column, ",", '"');
  
              $query_table_columns_data = "SELECT * FROM $table";
  
              if ($result_column_data = mysqli_query($mysqli, $query_table_columns_data)) {
  
                  // fetch table fields data
                  while ($column_data = $result_column_data-&gt;fetch_row()) {
                      $table_column_data = array();
                      foreach($column_data as $data) {
                          $table_column_data[] = $data;
                      }
  
                      // Format array as CSV and write to file pointer
                      fputcsv($file, $table_column_data, ",", '"');
                  }
              }
  }
  
      // close file pointer
      fclose($file);
  
      // ask either save or open
      header("Pragma: public");
      header("Expires: 0");
      header("Content-Type: application/octet-stream");
      header("Content-Disposition: attachment; filename='{$file_name}';" );
      header("Content-Transfer-Encoding: binary");
  
      // open a saved file to read data
      $fhandle = fopen($file_path, 'r');
      fpassthru($fhandle);
      fclose($fhandle);
      $mysqli-&gt;close();
      die;
  </code></pre>