Veri tabanı ıağlantı kodunu yazalım:
<?php
$veriyol = @mysql_connect ("localhost" , "kullanici_adi" , "sifre" );
if ( ! $veriyol) die ("MySQL ile veri bağlantısı kurulamıyor!");
@mysql_select_db( "veritabani_adi" , $veriyol ) or die ("Veritabanı Açılamıyor!");
@mysql_query("SET NAMES 'latin5'");
?>
Sütun başlıklarını ve listelenecek tablemizin alanlarını değişkene aktaralım:
<?php
$sutun_baslik="Adı,Soyadı,Kullanıcı Adı,Email Adresi";
$falan="alan1,alan2,alan3,alan4";
?>
$falan değişkenine yazılan alanların kaç tane olduğunu kodla bulalım
<?php
$sutunlar=split(",",$sutun_baslik);
$falanlar=split(",",$falan);
$f=count($falanlar);
?>
Şimdi sql kodumuzu yazalım ve html table kodlarını da kullanarak kayıtlarımızı listeletelim.
<?php
$result= mysql_query("select $falan from tableadi order by kayid desc",$veriyol );
$schema_insert .='<table x:str border=0 cellpadding=0 cellspacing=0 width=100% style=\'border-collapse: collapse\'>';
$schema_insert .= '<tr>';
for ($i = 0; $i < $f; $i++) {
$schema_insert .= '<td nowrap><b>' . $sutunlar[$i] . '</b> </td>';
} // end for
$schema_insert .= '</tr>';
while ($row = mysql_fetch_row($result)) {
$schema_insert .= '<tr>';
for ($j = 0; $j < $f; $j++) {
$schema_insert .= '<td nowrap>' . stripslashes($row[$j]) . '</td>';
} // end for
$schema_insert .= '</tr>';
} // end while
mysql_free_result($result);
$schema_insert .='</table>';
?>
Sıra geldi sayfanin tipini yazmaya işi yapan aslında bu kısım.
<?php
header("Content-type: application/x-msdownload");
header("Content-Disposition: attachment; filename=uyeliste.xls");
header("Pragma: no-cache"); header("Expires: 0"); ?>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
Artık değişkene aktarılan verilerimizi ekrana basabiliriz.
<?php
print $schema_insert;
?>
Bu sayfayı kaydedip direk linki verdiğinizde farklı kaydet ile karşılaşacaksınız. Kesin diyorum çünkü denedim.
Bazı hatırlatmaları yapalım. Aralara kod ekleme durumunda;
değişkenlere veri aktarma işlemini yaparken tek tırnak kullanıldı. Siz çift tırnak kullanırsanız excel çalışma sayfanız boş gelebilir bilginiz olsun. Yani $schema_insert="veri : araya ekle vs."; yerine $schema_insert='veri :araya ekle vs.'; gibi...
Kodlarımızın tümünü tek seferde görelim :
<?php
$sutun_baslik="Adı,Soyadı,Kullanıcı Adı,Email Adresi";
$falan="alan1,alan2,alan3,alan4";
$sutunlar=split(",",$sutun_baslik);
$falanlar=split(",",$falan);
$f=count($falanlar);
$result= mysql_query("select $falan from tableadi order by kayid desc",$veriyol );
$schema_insert .='<table x:str border=0 cellpadding=0 cellspacing=0 width=100% style=\'border-collapse: collapse\'>';
$schema_insert .= '<tr>';
for ($i = 0; $i < $f; $i++) {
$schema_insert .= '<td nowrap><b>' . $sutunlar[$i] . '</b> </td>';
} // end for
$schema_insert .= '</tr>';
while ($row = mysql_fetch_row($result)) {
$schema_insert .= '<tr>';
for ($j = 0; $j < $f; $j++) {
$schema_insert .= '<td nowrap>' . duzeduz($row[$j]) . '</td>';
} // end for
$schema_insert .= '</tr>';
} // end while
mysql_free_result($result);
$schema_insert .='</table>';
header("Content-type: application/x-msdownload");
header("Content-Disposition: attachment; filename=uyeliste.xls");
header("Pragma: no-cache"); header("Expires: 0"); ?>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<?
print $schema_insert;
?>