El problema es que creas una fila por cada dato, debiera ser una fila por cada "fila" =B dentro del archivo:
Código PHP:
while (( $data = fgetcsv ( $fp , 2048, ";")) !== false ) // Mientras hay líneas que leer...
{
echo '<tr>';
$i = 0;
foreach($data as $row)
{
echo '<td>'.$row.'</td>'; // Muestra todos los campos de la fila actual
$i++ ;
}
echo '</tr>';
}
echo '</table>';
Sotelio