Konular
Php
Mysql
Html
Javascript
Windows Vista
Program Anlatımı
Internet
Google
Windows 2003 Server
Komikler
Windows Xp
Isa Server
Network
Ofis Programları
Css
Photoshop
Donanım
Joomla
Youtube Video
Diğer Konular
Jquery

Linklerimiz
Eskişehir Satılık Bina
Yacht Rentals Turkey
Otel Şikayet
Satılık Gulet
Datca Bodrum Ferryboat
Gulet Stores
Hotel tel
Otel Video
Hotel Dizin
Hotel Directory
Otel Resimleri
Otel Maps
Boutique Gulets

 
MYSQL Veritabaninda Resim veya Normal Dosyalari Saklamak
Islem basamaklarini yazarsak kisaca :



1- Resmi veritabanina kaydetme (resimekle.php)



2- Resmi secme (resimgoster.php)



3- Resmi ekranda gösterme (resimgetir.php)



1- Öncelikle resmi veritabanindan okuma islemleri için kisa bir seyler yazayim,
resimlerimizi asagida belirtilmis vt içinde saklayacacagimiz, verilmis vt
yapisina bakarsak çogu sey tanidik, belki longblob için biraz bilgi edinmek
lazim, blob(binary-large-object) çesitli bilgi çesitlerini tutabilen bir
tiptir. Deger olarak maximum 4294967295 (2^32 - 1) karakterdir. Blob'da da
Varchar'da oldugu gibi bir degisken kendisine atanan kisimda, girilen bilgi
kadar yer tutar. Yani 10 karakterlik bir tanimlama yapilip eger 4
karakterlik bir bilgi girilirse toplam alan 5 olacak(1 byte string ifade
uzunlugunu tutar). Blob'ta da benzer bir mantik vardir. Evet bu kadar bilgi
yeter.



"turkphp_veritabani" veritabani içindeki "resim" isimli tablonun yapisi :



id int,auto_increment,primary
aciklama varchar (50)
dosyaadi varchar(50)
boyut varchar(50)
resimdata longblob
dosyatip varchar(10)




Tablo icin SQL semasi :






CREATE TABLE resim (
id MEDIUMINT(5) DEFAULT '0' NOT NULL AUTO_INCREMENT,
aciklama VARCHAR(50),
dosyaadi VARCHAR(50),
boyut MEDIUMINT(8),
resimdata LONGBLOB,
dosyatip VARCHAR(10),
PRIMARY KEY (id)
);







Ilk önce yapacagimiz dosyalari makineden vt'ye aktarmak ,asagidaki form
yardimi ile yerel makineden seçilen bir dosyayi bir açiklama ile beraber
vt'ye kaydediyoruz. Kaydetme islemi ardindan her bir dosya için
mysql_insert_id komutu ile otomatik bir id numarasi saglaniyor resimlere.(Bu
komut, AUTO_INCREMENT kolon için sorgu sonrasi bir ID üretir.)



Burada birde form içindeki birkaç olaydan kisaca söz etmek
isterim,biliniyordur ama ben yinede söyleyeyim ki yazacak bir seyler olsun :
)
Form içinde gelen bilginin tür olarak(enctype) multipart/form-data seçilmis,
ve gizli parametre olarak dosya boyutu 2400000 byte olarak belirtilmis, daha
yukarisi dosyalar için ben bölümlemenizi tavsiye ederim, dosya çekme islemi
içinde <input type ="file" > tip olarak file seçildi. Böylece dosyayi "gözat "
butonu ile seçip form_data degiskenine aktarmis oluyoruz.



Resimekle.php





<?php
if ($submit)
{
mysql_connect("localhost","turk_user","******");
mysql_select_db("turkphp_veritabani");
$data = addslashes(fread(fopen($form_data, "rb"),filesize($form_data)));
$sonuc=mysql_query("INSERT INTO resim
(id,aciklama,dosyaadi,boyut,resimdata,dosyatip) ".
"VALUES
('null','$form_aciklama','$form_data_name','$form_data_size','$data','$form_data_type')");
$id= mysql_insert_id(); //otomatik ID verildi.
print "<p>Database ID No: $id";
mysql_close();
echo "<BR>n";
echo "<a href="http://www.turk-php.com/ornekler/mysql/resimgoster.php">Yuklediginiz resme bakabilir veya bilgisayariniza indirebilirsiniz...</a>";
echo "<BR>n";
echo "<a href="http://www.turk-php.com/">Anasayfaya donebilirsiniz....</a>";
}
else
{
print "<a href="$PHP_SELF">Ana Sayfa</a>";
?>
<form method="post" action="<?php echo $PHP_SELF; ?>"
enctype="multipart/form-data">
Saklanacak dosya için aç&yacute;klama:



<input type="text" name="form_aciklama" value="Yorum Yapilmamis..." size="40">
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="10000">
<br> Database gonderilecek dosyayi secin: <input type="file"
name="form_data" size="40">
<br>
<BR>NOT : Bu demoda maximum dosya boyutu "10000" byte olarak ayarlanmistir... <BR>
<input type="submit" name="submit" value="Veritabanina EKLE">
</form>
<?php
}
?>






2- Simdide ekledigimiz resmi gösterelim. Vt içindeki tüm resimleri göstermek
veya belli bir resmi seçmek için çesitli yöntemler kullanabiliriz.Bir form
yardimi ile dosyaadi veya id degiskenlerini kullanabiliriz. Basitçe id si
veya dosyaadi girilen degisken vt'den sorgu ile çagrilip. Bir nesne olarak
fetch ediliyor,burada istenirse degerler array olarak da çekilebilir, bir
fark yok sanirim ama sadece kullanim farki var. (Array kullanimi : echo
$sira["dosyaadi"] , nesne kullanimi: echo $sira->dosyaadi (pointer gibi))
Burada resimleri localhost/resimgoster.php?id=2 seklinde id parametresini
göndererek resmi çagiriyoruz, eger kisi herhangi bir id yazmamissa tüm
resimleri gösteriyor.


Formu hazirlayalim...iste hazir asagida : )



resimgoster.php



<?
$i=0;
mysql_connect("localhost","turk_user","******") or die("server baglantisi
olmadi");
@mysql_select_db("turkphp_veritabani") or die("Veritaban&yacute; seçilemedi");
//e&eth;er id k&yacute;sm&yacute;nda bir de&eth;er yoksa tüm resimleri göster
if ($id==0 || $id==" ")
{
$sonuc=mysql_query("SELECT * FROM resim");
while($sira=mysql_fetch_object($sonuc))
{
$i++;
// burada resimgetir dosyas&yacute;na id ile resim ekrana ç&yacute;kart&yacute;l&yacute;yor,dosyaadi ve
// aç&yacute;klama ile beraber.
echo "<a href="resimgetir.php?id=$sira->id"><IMG SRC="resimgetir.php?id=$sira->id"></IMG></a>";
echo "tt";
echo "Dosya adi : " . $sira->dosyaadi . "";
echo "tt";
echo "Dosya açiklamasi: ". $sira->aciklama . "";
echo "<BR>n";
}
echo "Toplam dosya sayisi:$i";
echo "<BR>";
exit();
}
//eger id kisminda bir deger varsa sadece olani göster
$sonuc=mysql_query("SELECT * FROM resim where id='$id' ") or die("Sorgu
calismadi");
if ($sonuc==NULL)
{
echo "Böyle bir resim yok..";
exit();
}
$sira=mysql_fetch_object($sonuc);
echo "<IMG SRC="resimgetir.php?id=$sira->id">";
?>


3- Bunlar&yacute;n ardindan gelelim en önemli kisma :) (finali en son yapalim
dedim). Burada hazirlayacagimiz dosya ile resimgoster'den gelen id'yi (tabi
bir id gelmi&thorn;se) kullanarak vt'den uygun olan resmi, eger id gelmemisse tüm
resimleri gösterecek. Burada önemli nokta gösterilecek veri bir resim oldugu
için content-type için image/gif veya iamge/pjpeg seçilecek (ama herhangi
bir tanesi hepsi için çalisiyor :) )
resimgetir.php


<?php
Header("Content-type: Image/gif");// veya image/pjpeg
mysql_connect("localhost","turk_user","*******") or die("server baglantisi
olmadi");
@mysql_select_db("turkphp_veritabani") or die("Veritabani Secilemedi");
$sonuc=mysql_query("SELECT * FROM resim WHERE id='$id' ") or die("Sorgu
çalistirilamadi");
$sira=mysql_fetch_object($sonuc);
echo $sira->resimdata;
?>


Bu olayi daha gelistirebiliriz. Örnegin resimleri bir combobox içine alip
oradanda seçildigi anda (onchange olayi) resmi göstermek gibi.Örnegin;


<FORM method="post" action="resimgetir1.php" name="gonder" >
<SELECT name="id" onchange="submit()">
<?
While($row=mysql_fetch_object($result))
{
?>
<option> <?echo $row->dosyaadi?></option>
<?
}
?>
</SELECT>
<INPUT TYPE="SUBMIT" name="gonder" value="GONDER">
</form>
Böyyük Patron Tarafından 07-12-2007 Tarihinde Gönderilmiştir.   Bu Konuyu Yazdır
Kaynak : Yavuz Selim

 

En Son Eklenenler
php
php klasörün altındaki dosyaları ve klasörleri göstermek
php
php array verilerini dosyaya kayıt etme dosyadan okuma
php
php string içindeki fazla boşlukları (whitespaces) kaldırmak
Diğer Konular
.htaccess ile dosyalarınız cache ile sayfa hızınız artsın
Javascript
javascript linklerde referrer bilgisi gönderilmesi
jquery
input ve textarea kutularına girilince kutunun içindeki değerlerin silinmesi
jquery
jquery ui autocomplate - Sonuçları formatlamak
jquery
jquery ui autocomplate - arama sonuçlarında satır sayısı belirlemek
php
iconv ile utf karakterleri çeviriken kesme işareti (apstrof) sorunu
php
ip adresi kontrolü ip validate
php
url adresi kontrolü validate url
php
php mail adresi kontrolü filter_var
php
dosya include error hatasını engellemek
jquery
internet explorer position fixed sorununu jquery ile çözmek
jquery
input alanlara girilen sayıların toplanarak gösterilmesi
MYSQL
aynı satırdaki (row) field değerlerin içinde en büyüğünü (max) bulmak
MYSQL
aynı satırdaki (row) field değerlerin içinde en küçüğünü (min) bulmak
jquery
select kutusunda seçilen option daki attribute özelliğindeki değeri almak
jquery
jquery dizide max ve min işlemeleri array max min
MYSQL
mysql de türkçe kayıtlı alanlarda arama yapmak
php
str_shuffle()
php
sql_regcase()
php
mysql_affected_rows()
php
php Chop
php
php pathinfo
MYSQL
Mysql de trigger
php
eposta adresine ait mx kaydının olup olmadığını kontrol etmek
php
Türkçe karakter destekli array sort
Javascript
Diziler ve Türkçe Karakterleri Sıralama
php
php curl türkçe karakter sorunu çözülmüştür
jquery
jquery mouse sağ tuşu kilitlemek
jquery
jquery tagların value değerini öğrenmek
jquery
jquery multiple selector çoklu element seçimi
jquery
jquery zebra tablolar yapmak iki renkli tablo yapımı
jquery
jquery sayfayı refresh etmek sayfayı yenilemek
jquery
jquery resim yüklenemiyorsa farklı resim göstermek
php
tckimlik sorgulama
php
php ile javascript ve style (css) dosyalarını browsere sıkıştırarak göndermek
php
curl ile twitpic.com sitesine resim upload etmek
php
stringde aradağımız stringin posizyonunu bulmak tripos()
İletişim : bpatron@codekodu.com
877343Kişi Tarafından Sitemiz Ziyaret Edilmiştir. 20 Kişi Online
Bugün 04 Saat 01 Dakikada Sitemizi Tekil 166 Kişi Ziyaret Etmiştir.
Dün Sitemizi Tekil 937 Kişi Ziyaret Etmiştir.
Sitemizi En Çok Tekil 14-03-2012 Tarihinde 962 Kişi Ziyaret Etmiştir.
Sitemizdeki bilgilerin büyük çoğunluğu alıntıdır.İlgili yazının yazarının veya kaynak sahibinin istemesi halinde ilgili yazı sitemizden kaldırılacaktır.
Sitemizin İmalatı Böyyükpatron Tarafından Yapılmıştır.