Ik heb een php-script die een export van mysql naar excel moet kunnen maken.
Dit werkt ook prima als ik als query "select * from relaties" gebruik.
Maar zodra ik in de query aangeef welke velden ik wil zien, dan lopen de cellen in Excel na een aantal regels dwars door elkaar.
Ik heb de data al nagekeken en zie daar geen vreemde tekens of dergelijke.
Waarom werkt het scheiden van velden wel als ik alles wil zien, maar niet meer als ik maar een aantal velden wil zien?
Hopelijk weet iemand een oplossing???
Dit werkt ook prima als ik als query "select * from relaties" gebruik.
Maar zodra ik in de query aangeef welke velden ik wil zien, dan lopen de cellen in Excel na een aantal regels dwars door elkaar.
Ik heb de data al nagekeken en zie daar geen vreemde tekens of dergelijke.
Waarom werkt het scheiden van velden wel als ik alles wil zien, maar niet meer als ik maar een aantal velden wil zien?
Hopelijk weet iemand een oplossing???
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| $sql= "SELECT bedrijfsnaam,titel,afdeling,naam,aanhef,voornaam,postadres,postcode, woonplaats,tel_alg,cb,bm,gb,ph,hf,bdl,div_kwza,vrijw_kwza,zorgafnemer, div_sja,tel_doork,mobiel,fax,email,kerstkaart,relatie_van,bezoekadres FROM relaties"; $export = mysql_query($sql, $conn) or die (mysql_error()); $fields = mysql_num_fields($export); for($i=0; $i<$fields; $i++){ $header .= mysql_field_name($export, $i)."\t"; } $row=mysql_fetch_array($export); do{ $line=''; for($i=0; $i<$fields; $i++){ if((!isset($row[$i])) OR ($row[$i] =="")){ $value = "\t"; }else{ $value = str_replace('"','""', $row[$i]); $value = '"'.$value.'"'."\t"; } $line .=$value; } $data .= trim($line)."\n"; }while($row=mysql_fetch_array($export)); $data = str_replace("\r","",$data); if($data==""){ $data = "\n(0) Relaties gevonden!\n"; } header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=relaties.xls"); header("Pragma: no-cache"); header("Expires: 0"); print $header."\n".$data; mysql_close(); |