lets have a look at the while function, who to apply the determine function on the position value. And you need to escape the quotes before you write the CSV.
<?php
function determinePosition( $position )
{
$pos = "";
switch ( $position ) {
case 1:
$pos = "Keeper";
break;
case 2:
$pos = "Playmaker";
break;
case 3:
$pos = "Scorer";
break;
case 4:
$pos = "Winger";
break;
case 5:
$pos = "Defender";
break;
default:
$pos = "Error";
break;
}
return $pos;
}
$result = mysql_query( "SELECT * FROM players AS t1 JOIN players_details AS t2 JOIN players_eval AS t3 ON t1.id_player = t2.id_player AND t1.id_player = t3.id_player" );
$fields = '"Player ID","Player Name","TSI","Age","Position","Specialty","Stamina","Playmaking","Winger","Scoring","Keeper","Passing","Defending","Setpieces","Form","Experience","Owner Name","Owner Id","Owner Team Name","Owner Team ID","From"' . "\n";
while ( $row = mysql_fetch_assoc( $result ) ) {
$row['position'] = determinePosition( $row['position'] );
$row = array_map( "addslashes" , $row ); //you need to escape the quotes
$fields .= '"' . $row['id_player'] . '","' . $row['name_player'] . '","' . $row['value'] . '","' . $row['age'] . '","' . $row['position'] . '","' . $row['specialty'] . '","' . $row['stamina'] . '","' . $row['playmaking'] . '","' . $row['winger'] . '","' . $row['scoring'] . '","' . $row['keeper'] . '","' . $row['passing'] . '","' . $row['defending'] . '","' . $row['setpieces'] . '","' . $row['form'] . '","' . $row['experience'] . '","' . $row['owner_name'] . '","' . $row['owner_id'] . '","' . $row['owner_team'] . '","' . $row['owner_team_id'] . '","' . $row['owner_country'] . '"' . "\n";
}
// Set our headers
header( 'Content-type: text/csv' );
// To display data in-browser, change the header below to:
// header("Content-Disposition: inline");
header( "Content-Disposition: attachment; filename=event_registrations.csv" );
// Output our data
echo $fields;
?>