Utilizando php para exportar una consulta mysql a un archivo descargable .csv

He intentado con todas mis fuerzas evitar hacer esta pregunta (vi y probé un montón de ejemplos que ya están en el foro), en parte el trabajo que me lleva a creer que me falta algo. Tengo una configuración de enlace para exportar mi tabla a un archivo .csv descargable. Cuando hago clic en el enlace, el código volca la tabla en formato csv, PERO en lugar de cargarse como un archivo adjunto, solo muestra el contenido de la tabla en html.

-

<?php

include('bikes.php');    //db connection settings
if ($_GET['action'] == 'download')
{
header('Content-Disposition: attachment; filename="downloaded.csv"');

$query = "SELECT * FROM bikes";

$export = mysql_query ($query ) or die ( "Sql error : " . mysql_error( ) );

$fields = mysql_num_fields ( $export );

for ( $i = 0; $i < $fields; $i++ )
{
    $header .= mysql_field_name( $export , $i ) . "\t";
}

while( $row = mysql_fetch_row( $export ) )
{
    $line = '';
    foreach( $row as $value )
    {                                            
        if ( ( !isset( $value ) ) || ( $value == "" ) )
        {
            $value = "\t";
        }
        else
        {
            $value = str_replace( '"' , '""' , $value );
            $value = '"' . $value . '"' . "\t";
        }
        $line .= $value;
    }
    $data .= trim( $line ) . "\n";
}
$data = str_replace( "\r" , "" , $data );

if ( $data == "" )
{
    $data = "\n(0) Records Found!\n";                        
}

print "$header\n$data";

}
exit();

php?>

-

Mis resultados cómo arriba como

A, B, C, D, A, B, C, D: no tengo idea de por qué cuando hago clic en mi enlace (download.php? Action = download) eso no me pide que guarde el archivo en mi disco duro conducir, en lugar de solo mostrar la información en la página.

¡Cualquier ayuda será muy apreciada

Respuestas a la pregunta(4)

Su respuesta a la pregunta