• 09-05-2016, 09:00:03
    #1
    Merhaba arkadaşlar, mysql'deki verilerimi php yardımı ile Türkçe karakter sıkıntısı yaşamadan excel'e aktarıyorum fakat 50 tane kayıt var, gözümle görüyorum ama 1 tane kayıt geliyor.
    Neden 1 tane kayıt geliyordur?
    Mysql sorgumda da tüm hepsini id'ye göre sondan başa çek dedim, 1 tane getir demedim...
    Yardımcı olur musunuz?
    Teşekkür ederim.

    <?
    error_reporting(E_ALL); ini_set("display_errors", 1);
    // Veritabanı Bağlantısı
    include "vt.php";
    db_baglan();
    $haberler = mysql_query("SELECT * FROM haberler ORDER BY haberid DESC");
    $haberrows = mysql_num_rows($haberler);
    if (mysql_num_rows($haberler)) {
    $haber = mysql_fetch_array($haberler);
    $haberid = $haber['haberid'];
    $firmabilgisi = $haber['firmabilgisi'];
    $ziyaretciadi = $haber['ziyaretciadi'];
    $ziyaretciili = $haber['ziyaretciili'];
    $telefon = $haber['telefon'];
    $email = $haber['email'];
    $hizmetlerimiz = $haber['hizmetlerimiz'];
    $aciklamalar = $haber['aciklamalar'];
    }
    
    $dosya = "Rapor.xls"; // EXCEL TABLOSU ADI
    $yaz = @fopen($dosya,'w+'); 
    
    fwrite($yaz,"Ad\t Soyad\t Bolum\t Email\t Telefon\t \n");
    // Bu kod aşağıdaki şemayı çıkarmaktadır.
    // A  | B  |   C   |  D  |   E   
    // -----------------------------
    // ID | Ad | Soyad | Yaş | Email
    // -----------------------------
    
    for($i=0;$i<$haberrows;$i++){
    $haberid = mysql_result($haberler,$i,"haberid");
    $firmabilgisi = mysql_result($haberler,$i,"firmabilgisi");
    $ziyaretciadi = mysql_result($haberler,$i,"ziyaretciadi");
    $ziyaretciili = mysql_result($haberler,$i,"ziyaretciili");
    $telefon = mysql_result($haberler,$i,"telefon");
    $email = mysql_result($haberler,$i,"email");
    $hizmetlerimiz = mysql_result($haberler,$i,"hizmetlerimiz");
    $aciklamalar = mysql_result($haberler,$i,"aciklamalar");
    
    // Türkçe karakterini çözmek için;
    // mb_convert_encoding($tablo_sonuc[sayi], "iso-8859-9", "UTF-8"); kullanılır.
    $sutun0 = $haberid; // Id olduğu için karakter düzeltmedik. 
    $sutun1 = $ziyaretciadi;
    $sutun2 = mb_convert_encoding($ziyaretciili, "iso-8859-9", "UTF-8");
    $sutun3 = $telefon; // Yaş olduğu için karakter düzeltmedik. 
    $sutun4 = $email; // E-posta olduğu için karakter düzeltmedik. 
    
    fwrite($yaz,"$sutun0\t $sutun1\t $sutun2\t $sutun3\t $sutun4\t\n"); 
    
    //Gelen verileri satırlara yazdırdık.
    fclose($yaz);
    echo "İşlem Tamamlandı"; 
    exit;
    }
    
    ?>
  • 09-05-2016, 09:20:00
    #2
    Veritabanından gelen verileri döngü ile almanız gerekiyor. Bu şekilde deneyebilirsiniz.
    <?
    error_reporting(E_ALL); ini_set("display_errors", 1);
    // Veritabanı Bağlantısı
    include "vt.php";
    db_baglan();
    
    $dosya = "Rapor.xls"; // EXCEL TABLOSU ADI
    $yaz = @fopen($dosya,'w+'); 
    
    fwrite($yaz,"Ad\t Soyad\t Bolum\t Email\t Telefon\t \n");
    // Bu kod aşağıdaki şemayı çıkarmaktadır.
    // A  | B  |   C   |  D  |   E   
    // -----------------------------
    // ID | Ad | Soyad | Yaş | Email
    // -----------------------------
    
    
    $haberler = mysql_query("SELECT * FROM haberler ORDER BY haberid DESC");
    while($haber = mysql_fetch_array($haberler)){
    $haberid = $haber['haberid'];
    $firmabilgisi = $haber['firmabilgisi'];
    $ziyaretciadi = $haber['ziyaretciadi'];
    $ziyaretciili = $haber['ziyaretciili'];
    $telefon = $haber['telefon'];
    $email = $haber['email'];
    $hizmetlerimiz = $haber['hizmetlerimiz'];
    $aciklamalar = $haber['aciklamalar'];
    
    // Türkçe karakterini çözmek için;
    // mb_convert_encoding($tablo_sonuc[sayi], "iso-8859-9", "UTF-8"); kullanılır.
    $sutun0 = $haberid; // Id olduğu için karakter düzeltmedik. 
    $sutun1 = $ziyaretciadi;
    $sutun2 = mb_convert_encoding($ziyaretciili, "iso-8859-9", "UTF-8");
    $sutun3 = $telefon; // Yaş olduğu için karakter düzeltmedik. 
    $sutun4 = $email; // E-posta olduğu için karakter düzeltmedik. 
    
    fwrite($yaz,"$sutun0\t $sutun1\t $sutun2\t $sutun3\t $sutun4\t\n"); 
    
    }
    
    //Gelen verileri satırlara yazdırdık.
    fclose($yaz);
    echo "İşlem Tamamlandı"; 
    exit;
    
    ?>
  • 09-05-2016, 09:39:42
    #3
    PsdBul adlı üyeden alıntı: mesajı görüntüle
    Veritabanından gelen verileri döngü ile almanız gerekiyor. Bu şekilde deneyebilirsiniz.
    <?
    error_reporting(E_ALL); ini_set("display_errors", 1);
    // Veritabanı Bağlantısı
    include "vt.php";
    db_baglan();
    
    $dosya = "Rapor.xls"; // EXCEL TABLOSU ADI
    $yaz = @fopen($dosya,'w+'); 
    
    fwrite($yaz,"Ad\t Soyad\t Bolum\t Email\t Telefon\t \n");
    // Bu kod aşağıdaki şemayı çıkarmaktadır.
    // A  | B  |   C   |  D  |   E   
    // -----------------------------
    // ID | Ad | Soyad | Yaş | Email
    // -----------------------------
    
    
    $haberler = mysql_query("SELECT * FROM haberler ORDER BY haberid DESC");
    while($haber = mysql_fetch_array($haberler)){
    $haberid = $haber['haberid'];
    $firmabilgisi = $haber['firmabilgisi'];
    $ziyaretciadi = $haber['ziyaretciadi'];
    $ziyaretciili = $haber['ziyaretciili'];
    $telefon = $haber['telefon'];
    $email = $haber['email'];
    $hizmetlerimiz = $haber['hizmetlerimiz'];
    $aciklamalar = $haber['aciklamalar'];
    
    // Türkçe karakterini çözmek için;
    // mb_convert_encoding($tablo_sonuc[sayi], "iso-8859-9", "UTF-8"); kullanılır.
    $sutun0 = $haberid; // Id olduğu için karakter düzeltmedik. 
    $sutun1 = $ziyaretciadi;
    $sutun2 = mb_convert_encoding($ziyaretciili, "iso-8859-9", "UTF-8");
    $sutun3 = $telefon; // Yaş olduğu için karakter düzeltmedik. 
    $sutun4 = $email; // E-posta olduğu için karakter düzeltmedik. 
    
    fwrite($yaz,"$sutun0\t $sutun1\t $sutun2\t $sutun3\t $sutun4\t\n"); 
    
    }
    
    //Gelen verileri satırlara yazdırdık.
    fclose($yaz);
    echo "İşlem Tamamlandı"; 
    exit;
    
    ?>

    Psdbul, öncelikle yardımınız için teşekkür ederim, son olarak şunu sormak istiyorum.

    Ben 2 kelimeyi, araya nokta (.) koyarak nasıl birleştirebilirim?

    $degisken = rand (200000, 300000);
    $raporadi = "Raporlar-";
    $gercekadim = ($raporadi. $degisken .xls);

    Raporlar-54545454.xls olmasını istiyorum fakat ne denediysem $gercekadim kısmındaki .xls harfleri xls olarak dosyaya ekleniyor, dosya da doğal olarak uzantısız geliyor

    Teşekkür ederim.
  • 09-05-2016, 09:43:46
    #4
    gizemsiz adlı üyeden alıntı: mesajı görüntüle
    Psdbul, öncelikle yardımınız için teşekkür ederim, son olarak şunu sormak istiyorum.

    Ben 2 kelimeyi, araya nokta (.) koyarak nasıl birleştirebilirim?

    $degisken = rand (200000, 300000);
    $raporadi = "Raporlar-";
    $gercekadim = ($raporadi. $degisken .xls);

    Raporlar-54545454.xls olmasını istiyorum fakat ne denediysem $gercekadim kısmındaki .xls harfleri xls olarak dosyaya ekleniyor, dosya da doğal olarak uzantısız geliyor

    Teşekkür ederim.
    .xls tırnak içinde olması lazım.

    .'.xls'
    şeklinde olmalı.
  • 09-05-2016, 09:49:09
    #5
    emerald adlı üyeden alıntı: mesajı görüntüle
    .xls tırnak içinde olması lazım.

    .'.xls'
    şeklinde olmalı.
    Emerald, yardımınız için çok teşekkür ederim, sormam gereken bir şey daha kalmış yeni farkettim.

    Şimdi excel'de hücre içerisine kaydı yapıyorum ama ben hücreye 2 farklı değişkenden kayıt yapmak istiyorum.

    Şimdi aşağıdaki şekilde bilgileri farklı bir excel'e çekiyorum.

    . $row['aciklamalar'] ."\t" . $row['tarih'] . "\n";

    Ama ben bu sondaki tarih kısmına bir şey daha eklemek istiyorum ama \t şeklinde yani farklı hücreye değil.
    mysql'deki 2 yerden çekmem lazım. Kısacası mysql'de bir de saat tablom var, onu yanına eklemem lazım.
    $row['tarih ve saati çek'] komutu gerekiyor ))

    Teşekkürler.
  • 09-05-2016, 09:49:28
    #6
    Üyeliği durduruldu
    Yada
    $degisken = rand (200000, 300000);
    $raporadi = "Raporlar-";
    $xls =".xls";
    $gercekadim = ($raporadi.$degisken.$xls);
    echo $gercekadim;
    EKlenti :

    $row['tarih'] ve $row['saat'] bunları veritabanından çekip değişkene atayın.Daha düzenli olması açısından

    $tarih =  $row['tarih'];
    $saat =   $row['saat'];
    $tarihsaat = ($tarih.$saat);
    //Artık bu şekilde yapabilirsiniz
    . $row['aciklamalar'] ."\t" . $tarihsaat . "\n";
  • 09-05-2016, 09:59:47
    #7
    Angry adlı üyeden alıntı: mesajı görüntüle
    Yada
    $degisken = rand (200000, 300000);
    $raporadi = "Raporlar-";
    $xls =".xls";
    $gercekadim = ($raporadi.$degisken.$xls);
    echo $gercekadim;
    EKlenti :

    $row['tarih'] ve $row['saat'] bunları veritabanından çekip değişkene atayın.Daha düzenli olması açısından

    $tarih =  $row['tarih'];
    $saat =   $row['saat'];
    $tarihsaat = ($tarih.$saat);
    //Artık bu şekilde yapabilirsiniz
    . $row['aciklamalar'] ."\t" . $tarihsaat . "\n";

    İlgi ve alakanıza çok teşekkür ederim, yaptım

    $tarih = $row['tarih'];
    $saat = $row['saat'];
    $tarihsaat = ($saat. '/' .$tarih);
  • 09-05-2016, 10:04:24
    #8
    Üyeliği durduruldu
    gizemsiz adlı üyeden alıntı: mesajı görüntüle
    İlgi ve alakanıza çok teşekkür ederim, yaptım

    $tarih = $row['tarih'];
    $saat = $row['saat'];
    $tarihsaat = ($saat. '/' .$tarih);
    Rica ederim çorbada tuzumuz oldu Mantıklı olanı deneyin zaten "istisna hariç" çözüm odur yada ona yakındır Başarılar.
  • 09-05-2016, 13:05:09
    #9
    Yine bir sıkıntı var...

    Excel'e verileri aktarıyorum sorunsuz ama mysql'de TEXT olarak açtığım kısımlara veri enter tuşlu olarak gittiğinde kelime hücre içerisinden kayıyor. Yani verileri tek satır çek komutu var mı? Enter'lı yani bildiğimiz br'li gibi çekiyor ve excel'de komple kayıyor bu...

    Teşekkürler.