sql yan yana dizi 2
geçen gün sql ile ajaxtan gelen dosyaları veritabanına yan yana kaydetmeyi sormuştum
sorunum çözülmedi bazı arkadaşlar implode ile yan yana virgül ile ayır dediler onu da başaramadım
kodlar şöyle;
$gelen_resim = count($_FILES["resim"]["tmp_name"]);
for($i=0;$i<$gelen_resim;$i++){
$uzanti = substr($_FILES["resim"]["name"][$i],-4,4);
$dosyaAdi = uniqid().$uzanti;
$yol = array("gezi_res/".$dosyaAdi);
//move_uploaded_file($_FILES["resim"]["tmp_name"][$i],$yol);
} echo $col = implode(",",$yol);
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (11)
// tek satırda tutmak için değişken tanımlıyoruz ve bu değişkenin üstüne ekleyerek gideceğiz -- $photoloop
$photoloop ='';
// kaç tane fotoğraf varsa o kadar döndürüyoruz
for ($i=0;$i<$count;$i++){
// kontrol
if (!empty($_FILES["file"]["name"][$i])) {
//yeni değişkenimize isim tanımlıyoruz
$fileName = uniqid();
$fileName = $fileName.'.jpg';
// yüklenecek dizini ayarlıyoruz
$road = 'upload/'.$year.'/'.$month.'';
$targetFilePath = $road.'/'.$fileName;
$fileType = pathinfo($targetFilePath, PATHINFO_EXTENSION);
// Kabul edilen uzantılar
$allowTypes = array('jpg', 'png', 'jpeg');
if (in_array($fileType, $allowTypes)) {
// Yüklendiği yer
if (move_uploaded_file($_FILES["file"]["tmp_name"][$i], $targetFilePath)) {
// burada yukarıda tanımladığımız değişkene ekleme yaparak döngümüz devam ediyor
$photoloop .=$targetFilePath;
// burada da sonuncusuna virgül atmasın diye, döngü sayısının resim sayısına eşit olmadığı koşulu ekliyoruz
if($i != $count) {
$photoloop .=',';
}
}
} else {
$array['error'] = 'Resim yüklenemedi.';
}
}
}
// buradan sonra da bunu edit olarakta kullanacağın için böyle bir insert işlemi daha önce yapıldıysa eğer update yani
if(CheckInsertId($insert_id)>0){
// tablo update işlemi geliyor
}else {
// tablo insert işlemi geliyor
}
// Bunları yaptıktan sonra şu şekilde ekrana çıktı verebilirsin çektiğin sorguyu yazdığını varsayıyorum
// tablodaki verileri yazdığım fonksiyonla değişkene aktardık
$getData = GetDataPhotos($data_id);
// dizi içindeki resimleri değişkene aktarıyoruz
$photos = $getPhoto['photos'];
// veritabanında 1.jpg,2.jpg,3.jpg diye kayıtlı olan sütundaki resimleri explode yardımıyla virgüllerinden ayırarak yeni bir dizi oluşturduk
$photos = explode(",", $photos);
// bu diziyi de foreach yardımıyla döndürüyoruz
foreach($photos as $key => $value){
echo '<img src="'.$site['config']['url'].'/'.$value.'">';
}
Mantığını anlatayım kısaca örnek olarak
resim_tablosu
id
resim_adi
gonderilen_id
yukarı da ki örnek resimleri kayıt altına alacağın tablo ve sütunların olsun, burada gonderilen_id sütununa ilişkilendireceğin id'yi göndereceksin.
bu resimler bir üyeye ait diyelim, resimleri yüklerken üyenin id'sini gonderilen_id 'ye yazacaksın, üyenin sayfasında bu resimleri göstermek için
göstermek istediğin sayfada ki sorguya SELECT * FROM resim_tablosu WHERE gonderilen_id = $uyeninIDsi gibi bir sorgu yaparak
daha sonra foreach döngüsüne sokacaksın bu kadar mantığı yani senin yapmak istediğinden aslında daha kolay, gönderilen_id kısmınıda indexlersen daha iyi olacaktır.
Anladım fakat bu şekilde yapmak çok mantıklı gelmedi, resim_tablosu diye bir tablo oluşturup ayrı olarak buraya kaydet
farklı sayfalarda çağırırken ilişkilendirme ile çağır yani yükleme yaptığın örneğin üye resimleri olsun yüklerken üye'nin id bilgisinide gönder
çağırırken bu şekilde çağır bu şekilde çok daha kolay olacaktır.
ajaxla dosyaları toplu gönderiyorum bunları teker teker açmak for a sokuyorum fakat for döngüsünde bunları bir araya toplayıp
veritabanımda tek bir sütüna yada yan yana sütunlara yazdıramıyorum alt alt ekleyebiliyorum fakat bunları tekrar başka sayfamda
açarken sorun oluşuyor açamıyorum
Tam olarak sorunu açıklarmısın, dosya yüklemek istiyorsun bunları bir sütuna yan yanamı sıralamak istiyorsun?
[dosya1,dosya2,dosya3] gibi ya da her döngüde yeni bir kayıtmı oluşturmak istiyorsun?
şunuda bir incelermisin https://makitweb.com/how-to-upload-multiple-image-files-with-jquery-ajax-and-php/
Burada ki cevapları incelersen çözebilirsin sanırım
https://stackoverflow.com/questions/19295746/how-to-upload-multiple-files-using-php-jquery-and-ajax