Php Kaç Tane Resim Ekle Butonu Olmalı mı?
Merhabalar. Bir sorum olacaktı. 1. resimdeki büyük resim, 2. resimde eklettiğim resim. Yalnız benim, alttaki 4 alan için de resim ekletmem lazım. 2. resimde görüldüğü gibi 4 adet daha "file" butonu ekleyecek yer yok. Tasarım için uygun değil. Resimleri çoklu eklesem o 4 resmi nasıl o yerlere koyabilirim bilemedim. Bir de zaten çoklu ekleme işlemini yaptım ama veritabanına eklettiremedim. Ne yapmalı bu durumda bir akıl verebilir misiniz?
https://www.hizliresim.com/bsva4kg
https://www.hizliresim.com/f3rhzx7
Bir ürün için birden çok ekran görüntüsü kaydetmek için
PDO'da nasıl kullanabileceğinize bilgiler.
Öncelikle HTML sayfanızda, dosya yükleme işlemini gerçekleştirmek için
işlemlerde Dropzone kitaplığını kullandım.
Dropzone kitaplığını kullanmak istemiyorsanız Alternatif Olarak Verot Sınıfınıda kullanabilirsin
ancak verot ile kullanırsanız işlemler farklılık gösterebilir.
Örnek
<form action="upload.php" class="dropzone"></form>
Ayrıca, uygun CSS ve JavaScript dosyalarına bağlayarak yapabileceğiniz
Dropzone kitaplığını HTML sayfanıza eklemeniz gerekir.
upload.php dosyasında, karşıya yüklenen dosyaları işlemeniz ve bunları
PDO kullanarak veritabanına eklemeniz gerekir.
Örnek
<?php
// Veritabanı Bağlantısı Yapın
// Ürün bilgilerini ürünler tablosuna girin
$query = $pdo->prepare('INSERT INTO ürünler (baslik, aciklama) VALUES (:baslik, :aciklama)');
$query->bindParam(':baslik', $_POST['baslik']);
$query->bindParam(':aciklama', $_POST['aciklama']);
$query->execute();
// Ürün için son ekleme kimliğini alın
$urun_id = $pdo->lastInsertId();
// Yüklenen dosyalar arasında sıralı bir şekilde ilerleme
foreach ($_FILES['file']['baslik'] as $i => $baslik) {
if (strlen($_FILES['file']['baslik'][$i]) > 1) {
if (move_uploaded_file($_FILES['file']['tmp_baslik'][$i], 'upload/resimlerim/' . $baslik)) {
// Dosya bilgilerini, ürün kimliğiyle birlikte ayrı ekran görüntüleri tablosuna ekleyin
$query = $pdo->prepare('INSERT INTO resimler (urun_id, baslik, parent) VALUES (:urun_id, :baslik, :parent)');
$query->bindParam(':urun_id', $urun_id);
$query->bindParam(':baslik', $baslik);
$query->bindParam(':parent', 'upload/resimlerim/' . $baslik);
$query->execute();
}
}
}
?>
Ekran görüntülerini web sayfanızda görüntülemek için,
bir SELECT ifadesi kullanarak bunları ayrı ekran görüntüleri tablosundan
almanız ve ardından sonuçları yinelemek ve ekran görüntülerinin çıktısını almak için
foreach döngüsünü kullanmanız gerekir.
Örnek
<?php
// Ürün kimliğini url'den alın
$urun_id = $_GET['urun_id'];
// Ürünün ekran görüntülerini ayrı ekran görüntüleri tablosundan alın
$query = $pdo->prepare('SELECT * FROM resimler WHERE urun_id = :urun_id');
$query->bindParam(':urun_id', $urun_id);
$query->execute();
$resimlerim = $query->fetchAll();
// Resimler Çıktısı
foreach ($resimlerim as $resim) {
echo '<img src="' . $resim['parent'] . '" alt="' . $resim['baslik'] . '" />';
}
?>
Ekran görüntülerini web sayfanızda sıralı görüntülemek için css uyarlayıp veya hazır templatelerden yararlanabilirsin.