İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Mysql veritabanına excelden veri kayıt etmek istiyorum

İceberk1

0
İyinet Üyesi
Katılım
29 Eylül 2011
Mesajlar
26
Reaction score
0
Merhaba aranıza yeni katıldım. Çok kaliteli bir ortamınız.

Benim şöyle bir sıkıntım var upload edeceğim excel dosyasını mysql de yazdırmak istiyorum bu mümkünmüdür?.
her sene üyeleri sürekli elle kayıt etmek çokk zor oluyor. 1000 tane falan kayıt giriyorum

excelde düz aşağı doğru "tc" ve "sürmelino" olarak 2 sutun var sadece

örnek excel
12345678910 - 514251
25874452145 - 544141
vs...

Tablo adı surmeli olan tabloda tc ve surmelino hücresine excelden veri kaydetmek istiyorum. Yani exceldeki 2 sutunu bu hücrelere veritabanı olarak kayıt edecek.

CREATE TABLE `surmeli` (
`Id` int(11) NOT lisanssız AUTO_INCREMENT,
`adsoyad` varchar(255) DEFAULT lisanssız,
`sifre` varchar(255) DEFAULT lisanssız,
`tc` varchar(255) DEFAULT lisanssız,
`resim` varchar(255) DEFAULT lisanssız,
`sehir` varchar(255) DEFAULT lisanssız,
`tur` varchar(255) DEFAULT lisanssız,
`surmelino` varchar(255) DEFAULT lisanssız,
PRIMARY KEY (`Id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=1513 ;


yardımlarınız için şimdiden teşekkür ederim.
 

K1R1A1LM1AS

0
İyinet Üyesi
Katılım
26 Ocak 2010
Mesajlar
126
Reaction score
9
Konum
Antalya
Benim şöyle bir sıkıntım var upload edeceğim excel dosyasını mysql de yazdırmak istiyorum bu mümkünmüdür?.
Eğer site sana ait bir sunucuda ise ve lisans sorun olmayacaksa, microsoft office (excel) yazılımını yükleyebiliyorsan mümkündür. Google'da php read excel terimlerini aratarak, türkçe ve yabancı pek çok dökümana ulaşabilirsin.

her sene üyeleri sürekli elle kayıt etmek çokk zor oluyor. 1000 tane falan kayıt giriyorum

excelde düz aşağı doğru "tc" ve "sürmelino" olarak 2 sutun var sadece

örnek excel
12345678910 - 514251
25874452145 - 544141
vs...

Tablo adı surmeli olan tabloda tc ve surmelino hücresine excelden veri kaydetmek istiyorum. Yani exceldeki 2 sutunu bu hücrelere veritabanı olarak kayıt edecek.
Kayıtları excelden okutmak yerine, excel dosyasını, düz text formatı olan csv formatında kaydedip okutturmak ve işlem yaptırmak çok daha zahmetsiz olacaktır. Üstelik sunucu için office lisansınada ihtiyacın kalmayacak.

CSV işleme ile ilgili örneklere aşağıda ki linkten ulaşabilirsin
php.net/manual/tr/function.fgetcsv.php
 

İceberk1

0
İyinet Üyesi
Katılım
29 Eylül 2011
Mesajlar
26
Reaction score
0
Eğer site sana ait bir sunucuda ise ve lisans sorun olmayacaksa, microsoft office (excel) yazılımını yükleyebiliyorsan mümkündür. Google'da php read excel terimlerini aratarak, türkçe ve yabancı pek çok dökümana ulaşabilirsin.


Kayıtları excelden okutmak yerine, excel dosyasını, düz text formatı olan csv formatında kaydedip okutturmak ve işlem yaptırmak çok daha zahmetsiz olacaktır. Üstelik sunucu için office lisansınada ihtiyacın kalmayacak.

CSV işleme ile ilgili örneklere aşağıda ki linkten ulaşabilirsin
php.net/manual/tr/function.fgetcsv.php


teşekkür ederim
tablo isimlerini yazdım yularıda, ecel dosyası basit düz 2 sutun halinde ben onu farklı kaydet diyip cvs yaparsam olmazmı ama sonra?

hocam verdiğim tabloya göre düzenleyebilirmisiniz yapamadım? yada başka bir yolu varmıdır?
 

İceberk1

0
İyinet Üyesi
Katılım
29 Eylül 2011
Mesajlar
26
Reaction score
0
Csv dosyasını gönderebilirsen, yarın sakin kafayla bakmaya çalışırım.

çok teşekkür ederim...

Csv dosyasını gönderebilirsen, yarın sakin kafayla bakmaya çalışırım.

çok teşekkür ederim...

excel dosyasının bir örneğini ekliyorum
upload.gen.tr/d.php/www/voia36nl/xlssurmeliexcel.xls.html
buda farklı kaydet deyip cvs yapmaya çalıştım ama 98-2003 ecxelde ms-dos cvs ve cvs-machintos ayrı ayrı var her ikisinide ayrı ayrı yaptım
upload.gen.tr/d.php/www/voia36nl/cvsms-dos.csv.html
upload.gen.tr/d.php/www/voia36nl/cvs-machintos.csv.html

cevap bekliyorum
tekrar tekrar teşekkür ederim
 

K1R1A1LM1AS

0
İyinet Üyesi
Katılım
26 Ocak 2010
Mesajlar
126
Reaction score
9
Konum
Antalya
Tamam dosyaları aldım, kontrol ettim sağlamlar. Şuan kafam kaldırmazda, yarın öğleden sonra bakarım.
 

K1R1A1LM1AS

0
İyinet Üyesi
Katılım
26 Ocak 2010
Mesajlar
126
Reaction score
9
Konum
Antalya
İlk mesajda verdiğin bilgiler doğrultusunda, "cvsms-dos.csv" dosyasına göre hazırladım. Üst üste çalıştırsanda aynı bilgilerin birden fazla kaydını engelliyor, o açıdan sıkıntı çıkmaz.

PHP:
<?PHP
// CSV Ayarları
//-----------------------------------------------------------------------
$dosyaadi = 'cvsms-dos.csv';	// dosyanın tam yolu
$databolmeisareti = ';';		// veriler arasındaki sembol
//-----------------------------------------------------------------------

// Veritabanı bağlantı ayarları
//-----------------------------------------------------------------------
$server	= "localhost";		// Sucucu Bağlantı Yolu: localhost, 127.0.0.1, 192.168.1.10:1234
$selectdb	= "surmeli";		// DB Adı
$dbuser	= "root";			// DB Kullanıcı Adı
$dbpass	= "";				// DB Parolası
//-----------------------------------------------------------------------

// Veritabanı Bağlantı Kontrolü
//-----------------------------------------------------------------------
$dbconn = @mysql_connect($server, $dbuser, $dbpass);
if (!$dbconn) { echo mysql_error(); exit; }
else { @mysql_select_db($selectdb, $dbconn); }
//-----------------------------------------------------------------------

// CSV dosyasını açıp, verileri okumaya başlıyoruz
if (($handle = fopen($dosyaadi, "r")) !== FALSE) {
	$sayac = 0;
	$err = 0;
	$kopyanotu = '';
    while (($data = fgetcsv($handle, 1000, $databolmeisareti)) !== FALSE) {
    	$sayac += 1;
    	// İlk veride stun isimleri olduğu için, onları görmezden geliyoruz.
    	if ($sayac > 1) {
    		// $data[x]: 0=tc, 1=surmelino

			// Aynı verilerden kopya oluşturmaması için kontrolden geçiriyoruz.
            $sql = "SELECT tc FROM surmeli WHERE tc='".$data[0]."' AND surmelino='".$data[1]."'";
            $sorgu = mysql_query($sql);
            if (!$sorgu) { echo mysql_error(); $err = 1; Break; }
            $kayitsayisi = mysql_num_rows($sorgu);

			if ($kayitsayisi == 0) {
				// sorun yoksa, kayda başlıyalım
	            $sql = "INSERT INTO surmeli (tc, surmelino) VALUES ('".$data[0]."', '".$data[1]."')";
	            $sorgu = mysql_query($sql);
	            if (!$sorgu) { echo mysql_error(); $err = 1; Break; }
	        }
	        else { $kopyanotu .= 'tc='.$data[0].', surmelino='.$data[1].'<br />'; }
	    }
    }
    // Dosyayı kapatıyoruz
    fclose($handle);
}

if ($err == 0) {
	// Herhangi bir hata varsa, bu mesaj görüntülenmeyecek.
	?>CSV dosyası başarıyla kaydedildi.<?PHP
	if ($kopyanotu != '') {
		?><br /><br />Aynı kayıt veritabanında olduğu için görmezden gelinen kayıtlar.<br /><?PHP
		echo $kopyanotu;
	}
}
?>
 

İceberk1

0
İyinet Üyesi
Katılım
29 Eylül 2011
Mesajlar
26
Reaction score
0
hocam çok teşekkür ederim yaptım lakin şimdide şöyle bir durum söz konusu oldu yukarıdaki tabloda "tur" hücresinden değer çekmesi gerekiyor. "parttime" "fulltime" "özel" olarak üçtane değer var tur hücresinin içinde yani yukarıda yaptığımızla kayıtlar otomatik oluyor ama bölümü sorgulanmadığı için bazı alanlar açılmıyor. Bunu nasıl yapabilirim?

cvs dosyasını ekliyorum hocam
upload.gen.tr/d.php/www/3n4dhlex/cvsms-dos-son.csv.html
 

K1R1A1LM1AS

0
İyinet Üyesi
Katılım
26 Ocak 2010
Mesajlar
126
Reaction score
9
Konum
Antalya
tur eklenmiş hali

PHP:
<?PHP
// CSV Ayarları
//-----------------------------------------------------------------------
$dosyaadi = 'cvsms-dos-son.csv';	// dosyanın tam yolu
$databolmeisareti = ';';			// veriler arasındaki sembol
//-----------------------------------------------------------------------

// Veritabanı bağlantı ayarları
//-----------------------------------------------------------------------
$server		= "localhost";		// Sucucu Bağlantı Yolu: localhost, 127.0.0.1, 192.168.1.10:1234
$selectdb	= "surmeli";		// DB Adı
$dbuser		= "root";			// DB Kullanıcı Adı
$dbpass		= "";				// DB Parolası
//-----------------------------------------------------------------------

// Veritabanı Bağlantı Kontrolü
//-----------------------------------------------------------------------
$dbconn = @mysql_connect($server, $dbuser, $dbpass);
if (!$dbconn) { echo mysql_error(); exit; }
else { @mysql_select_db($selectdb, $dbconn); }
//-----------------------------------------------------------------------

// CSV dosyasını açıp, verileri okumaya başlıyoruz
if (($handle = fopen($dosyaadi, "r")) !== FALSE) {
	$sayac = 0;
	$err = 0;
	$kopyanotu = '';
    while (($data = fgetcsv($handle, 1000, $databolmeisareti)) !== FALSE) {
    	$sayac += 1;
    	// İlk veride stun isimleri olduğu için, onları görmezden geliyoruz.
    	if ($sayac > 1) {
    		// $data[x]: 0=tc, 1=surmelino, 2=tur

			// Aynı verilerden kopya oluşturmaması için kontrolden geçiriyoruz.
            $sql = "SELECT tc FROM surmeli WHERE tc='".$data[0]."' AND surmelino='".$data[1]."' AND tur='".$data[2]."'";
            $sorgu = mysql_query($sql);
            if (!$sorgu) { echo mysql_error(); $err = 1; Break; }
            $kayitsayisi = mysql_num_rows($sorgu);

			if ($kayitsayisi == 0) {
				// sorun yoksa, kayda başlıyalım
	            $sql = "INSERT INTO surmeli (tc, surmelino, tur) VALUES ('".$data[0]."', '".$data[1]."', '".$data[2]."')";
	            $sorgu = mysql_query($sql);
	            if (!$sorgu) { echo mysql_error(); $err = 1; Break; }
	        }
	        else { $kopyanotu .= 'tc='.$data[0].', surmelino='.$data[1].', tur='.$data[2].'<br />'; }
	    }
    }
    // Dosyayı kapatıyoruz
    fclose($handle);
}

if ($err == 0) {
	// Herhangi bir hata varsa, bu mesaj görüntülenmeyecek.
	?>CSV dosyası başarıyla kaydedildi.<?PHP
	if ($kopyanotu != '') {
		?><br /><br />Aynı kayıt veritabanında olduğu için görmezden gelinen kayıtlar.<br /><?PHP
		echo $kopyanotu;
	}
}
?>
 

İceberk1

0
İyinet Üyesi
Katılım
29 Eylül 2011
Mesajlar
26
Reaction score
0
çok teşekkürler hocam hemen deniyorum
sağolun

Ekleme: sanırım oldu hocam çok teşekkürler
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst