Merhaba
Öncelikle form yapını şu şekilde değiştirmelisin.
PHP:
<form action="" method="post" enctype="multipart/form-data">
action kısımına; formdan gelen verileri veritabanına işleyen dosyanın adını yazacaksın. Eger ekle.php içerisinde hallediyorsan boş kalabilir.
ekle.php sayfandaki Fotos alanının karşısına bir file input açman gerekiyor. Aşağıdaki kodu o alana ekle.
PHP:
<input name="resim" type="file"/>
Şimdi veritabanında arabaları eklediğin o tabloya
resim diye bir alan açacaksın. 100 karakter limitli bir text yada varchar degeri verebilirsin.
PHP:
if (@$_FILES['resim']) {
$resim = @$_FILES['resim']['name'];
$kaynak = $_FILES['resim']['tmp_name'];
$hedef = "../resimler/";
$uzanti = substr($resim, -4);
if ($uzanti == '.jpg' || $uzanti == '.JPG') {
$yeniad = substr(md5(uniqid(rand())), 0,5);
$yeniresimadi = $yeniad.$uzanti;
$yukle = @move_uploaded_file($kaynak,$hedef.'/'.$yeniresimadi);
} else {
$yeniresimadi ="resimyok.jpg";
}
}
Bu kodları veritabanına ekleme yaptırdıgın dosyana eklemen gerekiyor şimdi. Eger form butonuna basılıp basılmadıgının kontrolünü ekle.php de yaparak işlem yaptırıyorsan bu yazdıgım kodları o if içerisine almalısın.
Dosya upload kodumuz hazır. resimler diye bir klasor açman gerekiyor şimdi ana dizinde. Sonrada yeni bir isim verdiğimiz araba resimini sql ekleyeceğiz. Bunun için yapman gereken tek şey ilanı eklerken kullandıgın sql sorgusuna aşağıda kalın yazdıgım sekilde ekleme yapmak
PHP:
$sorgu = mysql_query("insert into ilanlar (ilanadi,ilansuyu,ilanbuyu,ilanoyu,[B]resim[/B]) values('$ilanadi','$ilansuyu','$ilanbuyu','$ilanoyu','[B]$yeniresimadi[/B]')");
Bu alanı kendi sql sorguna göre düzenlersin. Kalın yazdıgım yerleri dikkate alman gerekiyor ama.
İlan resimimizi sitemize upload ettik ve bu resime verdiğim izimi sql e yazdırdık. Şimdi listelemeye gelecek olursak bütün kayıtlar için ufak bir sorgu yapayım...
PHP:
$sorgu = mysql_query("selet * from ilanlar order by id desc");
if(mysql_num_rows($sorgu) <1) {
echo 'Şu an sistemde ekli bir ilan bulunmuyor.';
} else {
while($yaz = mysql_fetch_assoc($sorgu)) {
echo '
<img src="resimler/'.$yaz['resim'].'"/><br/>
<b>İlan Adı :</b> '.$yaz['ilanadi'].'<br/>
<b>İlan Şuyu:</b> '.$yaz['ilansuyu'].'<br/>
<b>İlan Buyu :</b> '.$yaz['ilanbuyu'].'<br/>
<b>İlan Oyu :</b> '.$yaz['ilanoyu'].'
';
}
}
Genel olarak mantığını açıklamak gerekirse;
İlk verdiğim php kod ile upload etmek istediğin resimin uzantısını kontrol ettik ve 5 karakterli birbirine hiç benzemeyecek rasgele bir isim verdik. Sonrada uzantısını ekledik ve resimler klasörüne yukledik. Örnegin IMG_054874.jpg diye yuklediğin resimi bu kod ile a7eq4.jpg gibi bir isim aldı ve sql sorgun sayesinde ilanlar tablosundaki resim alanına bu isim yazdırıldı. Eger ilan eklerken resim kullanmazsan otomatik olarak resimyok.jpg diye bir isim yazdıracak veritabanına. Resimler klasorunede resimyok.jpg diye bir resim atıp URUN RESIMI BULUNMUYOR gibi bir yazı koyabilirsin.
Önemli : resimler klasörünün CHMOD ayarları 777 olması gerekmektedir.
Her ilan eklediğinde farklı bir id numarası alan ilanın haliyle farklı bir resimde alacak. Bu nedenledir ki ister toplu listele istersen tek tek,
<img src="resimler/'.$yaz['resim'].'/> yazdıgın an o ilana ait olan resim sitendeki resimler klasorunden cagırılır ve ekrana yazdırılır.
Umarım anlatabilmişimdir, umarım anlamışsındır...
Kolay gelsin.