Excel den Php veritabanına bilgi aktarma

Kodla Büyü

mu_korkmaz

Seçkin Üye
Seçkin Üye
Mesajlar
488
Öğrenciler için hazırlamış olduğumuz bir program var ve sitede öğrenciler okul numarasını girerek şifrelerini öğrenmelerini istiyoruz. excel de öğrenci no, adı soyadı,kullanıcı adı,şifre sütunları var. 1000 e yakın öğrencimiz bulunuyor. bunu veritabanına nasıl atabiliriz.
 
hocam önce tabloyu oluşturun sütun başlıklarınız aynı olsun sonra içe aktarda ilk satır sütun başlıklarını içerir diye bir seçenek var onu işaretleyin aktarma işlemi gerçekleşecektir
 
1.excelde tablo'nun alan adları il satırda olsun
2. alan adları mysql veritabanı alan adları kriterlerine uygun olsun.(türkçe karakter, sayılar vesaire)
4. excel çalışma kitabını turkçe karakter kulanmadan .xls olarak kaydedin
5. sayfa ismini dogru verin. (bu isim tablo ismi olacak).
6. phpmyadmini çalıştırın
7. öncelikle veritabanı oluşturun.
8. bu veri tabanına tıkladıktan sonra içe aktar deyin.
9. karakter grubunu utf8 olarak ayarlamanızı tavsiye ederim.
10.Excel 97-2003 XLS Kitabı seçeneğini
11. "İlk satır içindeki sütun adları" seçeneğini seçin.
12. "git" e tıklayın.

içe aktarma işleminiz hayırlı olsun.
anlattıklarım phpMyAdmin 3.3.9 için geçerlidir. diğer versiyonları da çok farklı değil.
 
Excel'de Farklı Kaydet diyerek CSV formatında kaydedin belgeyi..
PHP'de aşağıdaki gibi kodla işinizi yapabilirsiniz.

Kod:
<?php
mysql_connect('localhost',$db_user,$db_password);
mysql_select_db('gidadb');
$t=file_get_contents("okul.csv");
$t1=preg_match_all('/(\;)(.+)(\;)/',$t,$matches);
$t=null;
$sayi=$t1;
for($i=0;$i<$sayi;$i++)
{
 $t2=explode(';',$matches[2][$i]);
 $adi = $t2[0];
 $sahibi = $t2[1];
 $adresi = $t2[2];
 $telefonu = $t2[3];
 $vergino = $t2[4];
 $gsno = $t2[5];
 $kategori = $t2[6];
 $cinsi = $t2[7];
 

if(! mysql_query("INSERT INTO isletme(isl_adi,isl_sahip,isl_adres,isl_telefon,isl_vergi_no,isl_gida_sicil_no,kategori,alt_kat) VALUES('$adi','$sahibi','$adresi','$telefonu','$vergino','$gsno','$kategori','$cinsi')"))
{
 echo "<br><br><br><center>kayıt yapılamadı</center>";
}
else
{
 echo "<br><br><br><center>kayıt tamamlandı<br></center>";
}
}
?>

Ayrıca MySQL komut satırında da şunu yazabilirsiniz.
Kod:
LOAD DATA INFILE 'path/file.txt' INTO TABLE your_table;
 
ogrenci.php olarak kaydet... sağlam denenmiş çalışıyor

Kod:
<?php
echo'<p align=center>
<form method="post" action="?sayfa=ogrenci" enctype="multipart/form-data">
Dosya: <input type=file name=resim> <input type=submit name="gonder" value="Gonder"></p>
</form>';

if(@$_POST['gonder']<>""){
  if (move_uploaded_file($_FILES['resim']['tmp_name'], "tmp/".$_FILES['resim']['name'])) {
echo "Gonderildi...";
}
else {
echo "Hata!";
}

$ismi="tmp/".$_FILES['resim']['name'];
 $dosya=$ismi;
 $baglan=fopen($dosya,'r');
 $i=0;
 $k=0;
 while (!feof($baglan)){ 
$satir=fgetcsv($baglan,filesize($dosya),";"); 

while (isset($satir[$k])){
 echo $satir[$k]."-";
 $k++;
 }
$db=new db; $db->baglan(); $db->latin5();
 $tablo="INSERT INTO ogrenciler (`no`, `sinif`, `ad`,`soyad`)  VALUES  ('$satir[0]','$satir[1]','$satir[2]','$satir[3]')";
@mysql_query ('SET NAMES LATIN5');
@mysql_query ('SET COLLATION_CONNECTION=LATIN5_TURKISH_CI');	
$deneme=mysql_query($tablo);

	
 $k=0;
 echo"<br>";
 $i++;
 }
 
   		 if($deneme) {
    echo'ok';
    }else{
    echo"SIKINTI OLDU.SONRA TEKRAR DENE";
    }
	
}
  ?>
 
BBNET
Geri
Üst