Şimdi "admin/panel" klasörü içinde, isimleri sadece sayı olan json dosyaları oluşturuyorum. Yani "1.json", "2.json" gibi. Kök klasöründe ise "index.php" sayfası var. Şimdi "admin/panel" içinde oluşturulmuş bir json dosyasının index sayfasında algılanması için "admin/panel" içinde dosya var mı yok mu diye sorabiliyor olmamız lazım. Şöyle anlatayım. Index sayfasında bir ürünün, satın al butonuna tıklayınca o ürüne ait diğer bilgilere şu şekilde ulaşabiliriz.
a.php?getparametresi=<?php echo $x['urun_id']; ?>
Bu bağlantıya mantığına göre bir şey olmalı. Yani son kullanıcı, form sayfasını post ettikten sonra oluşan "3.json" isimli bir dosyayı sunucunun içindeki "admin/panel" klasörü içine girip, json dosyasının adını öğrenip, bir kod editöründe "index.php" sayfasının slaydır bölgesini bulup, ilgili yere "3.json" yazamaz. Index sayfasının bir şekilde bu klasör içindeki dosyayı algılayıp o kısımda kullanılabiliyor olması lazım.
Bana şuna benzer bir şey lazım. Index dosyasının olup olmadığını algılaması lazım.
if(file_exists(.json))
Şimdi şöyle. "form.php" sayfasından gönderdiğim verileri "islem.php" sayfasında ".json" formatında oluşturuyorum. Bu verileri de "index.php" sayfasındaki slider'da sırasıyla; "resim, özellik" gibi listeletmem gerekiyor.
"Index.php" sayfasında listelettiğim resmin "satın al" butonuna tıklayınca, bu resme ait diğer resimler ve diğer verileri listeletmem lazım.
Yani; admin panelinde ürün ekliyorum. Index sayfasındaki slider'da o ürünün 1. resmini listeletiyorum ve satın al butonuna tıklayınca o resme ait diğer resimler ve özellikler listelenecek. Ama .json dosyasının adını benim bir şekilde "index.php" sayfasındaki slider'a ve "satın al" butonuyla tıkladığımda da "detay.php" sayfasına tanıtmam lazım.
Yani ürünü slider'ın tanıması için "get" gibi bir bağlantı lazım. Yani "admin" panelindeki ".json" dosyasını benim "get" gibi bir bağlantıyla index de listeletmem lazım. Akıl lazım bu konuda. Bu arada ".json" dosyalarının ismi için "json_id" diye bir alan var form'da. Yani isimleri hep sayı olarak kaydediyorum. Yani "1.json" gibi. Belki bir fikir verir size.
Üç değişik hata verdi ve ".json" dosyası içine hiç bir aktarım yapılmadı.
Creating default object from empty value in
Undefined variable: icerikid in
Invalid argument supplied for foreach() in
Galiba benim yapmam gereken şu. Veritabanında resmin kaydolduğu alana (işaretli alan) birden fazla resim kaydetmem lazım. Sonra o olandan da şu şekilde çekmem lazım. Bunu yapmanın mantığını çözemedim. Yani kaydederken nasıl bir kayıt yapmak lazım. Örneği olan var mı elinde.
$x['urun_galeri_resim'][0]
$x['urun_galeri_resim'][1]
Merhaba. "0" yazdığımda "id" yi çekiyor. "1" Yazdığımda ise "resim.jpg" şeklinde çekiyor. "2" yazdığımda başka bir alan ı çekiyor. Bana şu şekil bir veri çekme işlemi lazım ama nasıl olur bilemedim.
[1][0]
[1][1]
gibi. Döngü içine aldığımda da aynı resmi çekiyor.
Bu kodlarla ben iki ayrı id'de kayıt yapıyorum. Siz, tek satırda birden çok resim adı kaydedebileceğimi yazmıştınız. Nasıl yapabilirim bunu?
Hataları şu şekilde hallettim.
$ad = $_POST['ad'];
$ozellik = $_POST['ozellik'];
$kategori = $_POST['kategori'];
$eskifiyat = $_POST['eskifiyat'];
$yenifiyat = $_POST['yenifiyat'];
$indirimlifiyat = $_POST['indirimlifiyat'];
$urunsayisi = $_POST['urunsayisi'];
$urunalani = $_POST['urunalani'];
foreach($ad as $index => $names) {
$s_ad = $names;
$s_ozellik = $ozellik[$index];
$s_kategori = $kategori[$index];
$s_eskifiyat = $eskifiyat[$index];
$s_yenifiyat = $yenifiyat[$index];
$s_indirimlifiyat = $indirimlifiyat[$index];
$s_urunsayisi = $urunsayisi[$index];
$s_urunalani = $urunalani[$index];
$filename = "urunadlari.json";
$arr = [".$s_ad.", ".$s_ozellik.", ".$s_kategori.", ".$s_eskifiyat.", ".$s_yenifiyat.", ".$s_indirimlifiyat.", ".$s_urunsayisi.", ".$s_urunalani."];
$dizijson = json_encode($arr);
file_put_contents($filename, $dizijson);
$veriokujson = file_get_contents($filename);
$yeniveri = json_decode($veriokujson);
// foreach($yeniveri as $oku) {
if(move_uploaded_file($gecici_yol, "../../images/indexurunler/" . $dosya_adi)) {
$jsonveriekle = "INSERT INTO indexsayfaurun (urun_resim, urun_ad, urun_ozellik, urun_kategori, urun_eskifiyat, urun_yenifiyat, urun_indirimlifiyat, urun_sayisi, urun_alani)
VALUES ('$dosya_adi', '$s_ad', '$s_ozellik', '$s_kategori', '$s_eskifiyat', '$s_yenifiyat', '$s_indirimlifiyat', '$s_urunsayisi', '$s_urunalani')";
$jsonverieklesorgu = mysqli_query($db, $jsonveriekle);
// }
}
}
if ($jsonverieklesorgu) { ?>
<div style="margin-top:25px; text-align:center; font-size:30px;">
<?php
echo "Ürün Kaydedildi";
header("Refresh:3; url=urunekle.php");
?>
</div>
<?php }
Dediğiniz gibi, verileri aşağıdaki gibi json dosyasına kaydettim ama verileri veritabanına yazdırırken 30 sıra şöyle bir hata verdi
Warning: Illegal string offset 'urun_ad' in sayfa 51
Warning: Illegal string offset 'urun_ad' in sayfa 52
gibi. Bir de veritabanına veritabanı alanı kadar da boş kayıt girdi. Kodlar
if(isset($_FILES['dosya'])) {
$ad = $_POST['ad'];
$ozellik = $_POST['ozellik'];
$kategori = $_POST['kategori'];
$eskifiyat = $_POST['eskifiyat'];
$yenifiyat = $_POST['yenifiyat'];
$indirimlifiyat = $_POST['indirimlifiyat'];
$urunsayisi = $_POST['urunsayisi'];
$urunalani = $_POST['urunalani'];
foreach($ad as $index => $names) {
$s_ad = $names;
$s_ozellik = $ozellik[$index];
$s_kategori = $kategori[$index];
$s_eskifiyat = $eskifiyat[$index];
$s_yenifiyat = $yenifiyat[$index];
$s_indirimlifiyat = $indirimlifiyat[$index];
$s_urunsayisi = $urunsayisi[$index];
$s_urunalani = $urunalani[$index];
$filename = "urunadlari.json";
$arr = [".$s_ad.", ".$s_ozellik.", ".$s_kategori.", ".$s_eskifiyat.", ".$s_yenifiyat.", ".$s_indirimlifiyat.", ".$s_urunsayisi.", ".$s_urunalani."];
$dizijson = json_encode($arr);
file_put_contents($filename, $dizijson);
$veriokujson = file_get_contents($filename);
$yeniveri = json_decode($veriokujson);
foreach($yeniveri as $oku) {
$jsonveriekle = "INSERT INTO indexsayfaurun (urun_ad, urun_ozellik, urun_kategori, urun_eskifiyat, urun_yenifiyat, urun_indirimlifiyat, urun_sayisi, urun_alani)
VALUES ('".$oku["urun_ad"]."', '".$oku["urun_ozellik"]."', '".$oku["urun_kategori"]."', '".$oku["urun_eskifiyat"]."', '".$oku["urun_yenifiyat"]."', '".$oku["urun_indirimlifiyat"]."', '".$oku["urun_sayisi"]."', '".$oku["urun_alani"]."')";
$jsonverieklesorgu = mysqli_query($db, $jsonveriekle);
}
if($jsonverieklesorgu) {
echo "tamam";
} else {
echo "olmadı";
}
}
}
?>
Kodları bu şekilde çalıştırdım. Ben, öncesiyle aradaki farkı anlamadım ama kodlar üzerinde oynamadan evvel yani çalışırken kaydettiydim. Tekrar çalıştı. Kodlar aşağıda. ckeditor le de çalışıyor şu an.
<?php
if(isset($_FILES['dosya'])) {
$ad = $_POST['ad'];
$ozellik = $_POST['ozellik'];
$kategori = $_POST['kategori'];
$eskifiyat = $_POST['eskifiyat'];
$yenifiyat = $_POST['yenifiyat'];
$indirimlifiyat = $_POST['indirimlifiyat'];
$urunsayisi = $_POST['urunsayisi'];
$urunalani = $_POST['urunalani'];
foreach($ad as $index => $names) {
$s_ad = $names;
$s_ozellik = $ozellik[$index];
$s_kategori = $kategori[$index];
$s_eskifiyat = $eskifiyat[$index];
$s_yenifiyat = $yenifiyat[$index];
$s_indirimlifiyat = $indirimlifiyat[$index];
$s_urunsayisi = $urunsayisi[$index];
$s_urunalani = $urunalani[$index];
$dosya_sayisi = count($_FILES['dosya']["name"]);
for($i=0; $i<$dosya_sayisi; $i++) {
$dosya_adi = $_FILES['dosya']["name"][$i];
$gecici_yol = $_FILES['dosya']["tmp_name"][$i];
$dosya_tipi = $_FILES['dosya']["type"][$i];
$dosya_boyutu = $_FILES['dosya']["size"][$i];
if($dosya_boyutu > (1024*1024*3)) { ?>
<div style="margin-top:25px; text-align:center; font-size:30px;">
<?php
echo "Dosya Boyutu 3 MB'dan Büyük Olamaz <br>";
echo "Form Sayfasına Gitmek İçin";
?>
<a href="urunekle.php" style="color:blue;">Tıklayınız</a>
</div>
<?php
exit;
}
if(!($dosya_tipi=="image/jpeg" || $dosya_tipi=="image/jpg" || $dosya_tipi=="image/png")) { ?>
<div style="margin-top:25px; text-align:center; font-size:30px;">
<?php
echo "Sadece Jpeg, Jpg ve Png Yükleyebilirsiniz <br>";
echo "Form Sayfasına Gitmek İçin";
?>
<a href="urunekle.php" style="color:blue;">Tıklayınız</a>
</div>
<?php
exit;
}
if(move_uploaded_file($gecici_yol,"../../images/indexurunler/" . $dosya_adi)) {
$sorgualani = "INSERT INTO indexsayfaurun (urun_resim, urun_ad, urun_ozellik, urun_kategori,
urun_eskifiyat, urun_yenifiyat, urun_indirimlifiyat,
urun_sayisi, urun_alani)
VALUES ('$dosya_adi', '$s_ad', '$s_ozellik', '$s_kategori', '$s_eskifiyat', '$s_yenifiyat', '$s_indirimlifiyat', '$s_urunsayisi', '$s_urunalani')";
$sorgu = mysqli_query($db, $sorgualani);
}
}
}
if($sorgu) { ?>
<div style="margin-top:25px; text-align:center; font-size:30px;">
<?php
echo "Ürün Kaydedildi";
// header("Refresh:3; url=urunekle.php");
?>
</div>
<?php
// header("Refresh:3; url=urunekle.php");
} else { ?>
<div style="margin-top:25px; text-align:center; font-size:30px;">
<?php
echo "Ürün Eklenemedi <br>";
header("Refresh:3; url=urunekle.php");
?>
</div>
<?php
}
}
?>