Arama butonu
Bu konudaki kullanıcılar: 1 misafir
9
Cevap
402
Tıklama
0
Öne Çıkarma
Php resim yüklediğim için mysql'de iki kayıt
E
9 yıl (176 mesaj)
Teğmen
Konu Sahibi

Merhaba arkadaşlar,

ben normalde php'de mysql veritabanına resimler ekleyecektim. Ama veritabanı çok ağır olur diye yapmadım. Bundan dolayı php dosyalarınım olduğu yere uploads diye bir tane dosya oluşturdum. Ve resimleri bu dosyaya kaydettim. Sonra ise yolunu veritabanına kaydettim. Bu arada isterseniz resim işlemleri için bu yöntemi kullanabilirsiniz. Php dosyalarımı kaydettiğim yerde olduğu için başka bilgisayarlarda sıkıntı çıkmaz.

Şimdi gelelim asıl soruna :

Ben birden fazla resim eklediğim için bir çok kayıt oluşturuyor. Yani 2 resim eklersem iki tane kayıt oluyor. Ben de alış-veriş türünde bir site yapıyorum ve ürünleri listeliyorum. Ama diyelimki ürünün 3 resmi var. 3 ayrı ürün olarak gösteriyor.

Umarım anlatabilmişimdir.

Lütfen yardım edin.

Cevaplarınız için şimdiden çok teşekkür ederim.

İyi ramazan ve günler dileğiyle.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



M
9 yıl (2 mesaj)
Er

Dediğini Tam Olarak Anlayamadım Sen Veri Tabanından Çekerken Mi Sorun Yaşıyorsun Yoksa Dosya Upload Ve Veri Tabanına Kayıt Mı ?


Bu mesaja 1 cevap geldi.
E
9 yıl (176 mesaj)
Teğmen
Konu Sahibi

quote:

Orijinalden alıntı: mygunstr09

Dediğini Tam Olarak Anlayamadım Sen Veri Tabanından Çekerken Mi Sorun Yaşıyorsun Yoksa Dosya Upload Ve Veri Tabanına Kayıt Mı ?

Merhaba,

benim demek istediğim ben bir alış-veriş sitesi yapıyorum ve ürünlerin bir çok resmi olabiliyor. Ben bu resimleri bir dosyaya upload ediyorum ve sonra resim yolunu veritabanına kaydetiyorum. Buraya kadar sıkıntı yok. Ama her resim kayıt oluşturuyor. Yani bir ürünün 3 resmi varsa. 3 ayrı kayıt oluşturuyor ve ben ürünleri listelerken ürünün kaç tane resmi varsa o kadar buton gözüküyor.

Umarım anlatabilmişimdir. Biliyorum çok iyi anlatamıyorum eğer isterseniz resimlerle açıklama yapabilirim.

Lütfen yardım edin.

Cevaplarınız için şimdiden çok teşekkür ederim.

İyi ramazan ve günler dileğiyle.



M
9 yıl (2 mesaj)
Er

doğrudur resim kadar kayıt yaptığı çünkü birden fazla resim ekliyorsun onu çözmek için stun sayısını arttırman gerekir
php ile veritabanında tablo stun oluşturabiliyorsun bir script yaz eklediğin resim kadar stun oluştursun ve o resimleri 1 ürüne atasın


Bu mesaja 1 cevap geldi.
E
9 yıl (176 mesaj)
Teğmen
Konu Sahibi

quote:

Orijinalden alıntı: mygunstr09

doğrudur resim kadar kayıt yaptığı çünkü birden fazla resim ekliyorsun onu çözmek için stun sayısını arttırman gerekir
php ile veritabanında tablo stun oluşturabiliyorsun bir script yaz eklediğin resim kadar stun oluştursun ve o resimleri 1 ürüne atasın


Merhaba,

rica edersem kod örneği verebilir misiniz?

Lütfen yardım edin.

Cevaplarınız için şimdiden çok teşekkür ederim.

İyi ramazan ve günler dileğiyle.



Y
9 yıl (2478 mesaj)
Yüzbaşı

Resimleri aynı sütuna aralarına belirli bir sınırlayıcı (delimiter) koyarak kaydetmeyi deneyebilirsin. Örneğin a.jpg ve b.jpg kaydedilirken "resimler/a.jpg$resimler/b.jpg" şeklinde kaydedersen client tarafında veya server tarafında $ olan yerlerden kolaylıkla ayırırsın.

Upload kısmındaki kodları atarsan daha iyi yardımcı olabliriz.


Bu mesaja 1 cevap geldi.
E
9 yıl (176 mesaj)
Teğmen
Konu Sahibi

quote:

Orijinalden alıntı: yoktur

Resimleri aynı sütuna aralarına belirli bir sınırlayıcı (delimiter) koyarak kaydetmeyi deneyebilirsin. Örneğin a.jpg ve b.jpg kaydedilirken "resimler/a.jpg$resimler/b.jpg" şeklinde kaydedersen client tarafında veya server tarafında $ olan yerlerden kolaylıkla ayırırsın.

Upload kısmındaki kodları atarsan daha iyi yardımcı olabliriz.

Merhaba,

kodlar :

foreach($_FILES["okuluef"]["tmp_name"] as $key=>$tmp_name){ 
$temp = $_FILES["okuluef"]["tmp_name"][$key];
$name = $_FILES["okuluef"]["name"][$key];
$type = $_FILES["okuluef"]["type"][$key];
$yol = "uploads/".basename($name);
$resimtipi = pathinfo($yol,PATHINFO_EXTENSION);

?>

<img src="<?php echo($yol); ?>">

<?php

if ($resimtipi != "jpg" && $resimtipi != "png" && $resimtipi != "jpeg" && $resimtipi != "gif") {

echo "Lütfen jpg,png,jpeg ve ya gif formatındaki fotoğraf(lar)ı seçiniz";

break;

}if (file_exists($yol)) {

echo "Bu resim(ler) daha önceden yüklenmiş";

break;

}

if(empty($temp)){

echo "Lütfen fotoğraf(lar) seçiniz";

break;

}

move_uploaded_file($temp,"uploads/".$name);

$baglanti16 = new PDO("mysql:host=localhost;dbname=egoldshopphp","php","");
$veriekle15 = $baglanti16 -> query("insert into urunlist (urunad,urunadet,urunfiyat,kargofiyat,urunzaman,urunresimyol,urunresimtip,urunaciklama,urunlink) values ('$okulueuay','$okulueua2y','$okulueufy','$okuluekfy','$deneme','$yol','$type','$okulueay','$deneme')");
}

}else{

}


Mysql veri eklerken resimle alakalı yerler : urunresimyol, urunresimtip

Lütfen yardım edin.

Cevaplarınız için şimdiden çok teşekkür ederim.

İyi ramazan ve günler dileğiyle.



İ
9 yıl (3227 mesaj)
Binbaşı

Performans ve sunucu yükü sorununuz yoksa idye göre klasör oluşturup içine yüklensin hatta bence daha performanslı olur bu şekilde . Çünkü bazı üründe 8 resimde olur 1 resimde. Tek tek sorguyla performans kaybı yaşanacağına bol klasör olur fakat hem düzenli olur hemde sorununuz ortadan kalkar. Klasörü oluşturur içine resimleri yüklersiniz. Sonra klasörün içindeki veri yolundaki resimleri de göstertirsiniz. Basitçe hallolmuş olur.



< Bu ileti mini sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
Y
9 yıl (2478 mesaj)
Yüzbaşı

$yollar="" ;
$tipler="" ;
foreach($_FILES["okuluef"]["tmp_name"] as $key=>$tmp_name){
$temp = $_FILES["okuluef"]["tmp_name"][$key];
$name = $_FILES["okuluef"]["name"][$key];
$type = $_FILES["okuluef"]["type"][$key];
$yol = "uploads/".basename($name);
$resimtipi = pathinfo($yol,PATHINFO_EXTENSION);

?>

<img src="<?php echo($yol); ?>">

<?php

if ($resimtipi != "jpg" && $resimtipi != "png" && $resimtipi != "jpeg" && $resimtipi != "gif") {

echo "Lütfen jpg,png,jpeg ve ya gif formatındaki fotoğraf(lar)ı seçiniz";

break;

}if (file_exists($yol)) {

echo "Bu resim(ler) daha önceden yüklenmiş";

break;

}

if(empty($temp)){

echo "Lütfen fotoğraf(lar) seçiniz";

break;

}

move_uploaded_file($temp,"uploads/".$name);
$yollar.=$yol."$";
$tipler.=$type."$";
}
rtrim($yollar,"$"); //Sonuncudan sonra $ olacak, onu silmek için.
rtrim($tipler, "$") ;
$baglanti16 = new PDO("mysql:host=localhost;dbname=egoldshopphp","php","");
$veriekle15 = $baglanti16 -> query("insert into urunlist (urunad,urunadet,urunfiyat,kargofiyat,urunzaman,urunresimyol,urunresimtip,urunaciklama,urunlink) values ('$okulueuay','$okulueua2y','$okulueufy','$okuluekfy','$deneme','$yollar','$tipler','$okulueay','$deneme')");

}else{

}

Kodun tamamını görmediğim için parantez hatası olabilir varsa düzeltirsin.
Ürünü gösterdiğin sayfada da ürün resmini gösteren satırda yani <img src="<?php echo $data["yol"]; ?>"> gibi bir yerde, o satır sil yerine böyle bir şey ekle.

<php
$yoldizisi=explode("$", $data["yol"]);
foreach ($yoldizisi as $dosyayolu)
echo "<img src='".$dosyayolu."'>";?>





< Bu mesaj bu kişi tarafından değiştirildi yoktur -- 14 Haziran 2017; 3:44:23 >

< Bu ileti tablet sürüm kullanılarak atıldı >

E
9 yıl (176 mesaj)
Teğmen
Konu Sahibi

quote:

Orijinalden alıntı: İplenmemekten Bıkan Adam

Performans ve sunucu yükü sorununuz yoksa idye göre klasör oluşturup içine yüklensin hatta bence daha performanslı olur bu şekilde . Çünkü bazı üründe 8 resimde olur 1 resimde. Tek tek sorguyla performans kaybı yaşanacağına bol klasör olur fakat hem düzenli olur hemde sorununuz ortadan kalkar. Klasörü oluşturur içine resimleri yüklersiniz. Sonra klasörün içindeki veri yolundaki resimleri de göstertirsiniz. Basitçe hallolmuş olur.

Merhaba,

peki bir ürün silinince nasıl olacak? ve silinen üründen sonra id numaralarında atlama olursa yani 29,30,32 olabilir.

Birde rica etsem kod örneği alabilir miyim?

Lütfen yardım edin.

Cevaplarınız için şimdiden çok teşekkür ederim.

İyi ramazan ve günler dileğiyle.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.