Yok bu böyle olmayacak anlaşılan :) Anydesk falan var mı öyle kontrol etmeye çalışalım
Neden sizden bilgiyi cımbızla alıyoruz hocam onu anlamadım, tek bir satırı görmekle hatanın kaynağını nasıl anlayabiliriz.
Kodu nasıl yazdığını görmem lazım, 113. satır hata veriyormuş
Tamam o zaman companyName
değişkeninde küçük bir değişilik yapmak yeterli olacaktır.
$companyName = $_GET['pid55'] ?? '';
$companyName = 'A şirketi';
$sorgu = $vt->prepare('SELECT * FROM sirketler WHERE Sirketadi = ?');
$sorgu->execute([$companyName]);
if($sorgu->rowCount()) {
$getCompany = $sorgu->fetch(PDO::FETCH_ASSOC);
var_dump($getCompany);
}
else {
echo 'Böyle bir şirket bulunamadı';
}
Sorguyu çift tırnak içine yazdığınız için normal koşullarda aşağıdaki gibi değişkeni sorgu içerisinde kullanabilirsiniz. id olduklarından dolayı bunların int tipinde olduklarını düşünüyorum.
$item_controls = $db->prepare("SELECT * FROM mc_user_items where user_item_user_id = $session_user_id and user_item_item_id = $trade_id");
Olmazsa daha kesin bir şekilde yapalım.
Veri tabanındaki tablonun user_item_user_id
ve user_item_item_id
sütunlarının tiplerinin INT
olduğundan emin olun. Sonra değişkenleri de type casting ile integer a çevirelim.
$session_user_id = (int) $session_user_id;
$trade_id = (int) $trade_id;
Sonra yukarıdaki sorguyu yazdığınızda çalışması beklenir.
Veritabanında resim adlarını nasıl bir mantıkla tutuyorsun. img sütun adı ile içerisinde ornek.jpg tarzı bir sistemin mi var. Ve diğer resimleri aynı sütuna nasıl entegre edeceğini mi bilemiyorsun.
Diyelim ki öyle. İki türlü şey önerebilirim. Ya bu resimleri tuttuğun sütunu longtext yani json türünde yap ve resim adlarını json formatında burada tut. Sorguda decode yapıp geri kullanabilirsin. İlk sıradaki yani 0 indisli resim varsayılan resim olur, yanına istediğin kadar daha eklersin. Döngü yapıp ekranda geri gösterebilirsin.
Veya resimler diye bir tablo oluştur, bu tabloya bir tane ürün_id sütunu koy ve bu sütun ürünler tablosundaki id sütununa foreign key ile bağla. Hatta bu bağlama türünü CASCADE yaparsan ürün silindiğinde bu ürün ile ilgili resimler de otomatik silinir ama bu gerçek resimler sunucuda kalmaya devam eder, neyse bu sana kalmış. İşte ürün eklediğin zaman da bu yeni resim tablosuna resimleri yine döngü ile eklersin. Önce ürünü kaydedersin, sonra lastInsertId ile son eklenen ürünün id sini alıp resim tablosundaki ürün_id kısmı için kullanırsın
Bak bu kodu chatgpt ye yazdırdım, bence iyi çalışıyor
function find_subs($mainCategory, $arr, $str = '') {
if (array_key_exists($mainCategory['ID'], $arr)) {
$current = $arr[$mainCategory['ID']];
unset($arr[$mainCategory['ID']]);
foreach ($current as $item) {
echo $str . $item['kategoriAD'] . '<br>';
if (array_key_exists($item['ID'], $arr)) {
$str .= $item['kategoriAD'] . ' --> ';
find_subs($item, $arr, $str);
}
}
}
}
$query = $db->query("SELECT kategoriUST, urunler.* FROM urunler")->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_GROUP);
$mainCategories = reset($query);
unset($query[key($query)]);
foreach ($mainCategories as $mainCategory) {
$str = $mainCategory['kategoriAD'] . ' --> ';
echo $mainCategory['kategoriAD'] . '<br>';
find_subs($mainCategory, $query, $str);
}
Bir küçük not: Tutarlı çalışabilmesi için tablonuzdaki ilk kaydın bir ana kategori yani üst id si 0 olması gerekir.
$columns = array(
array('db' => 'id', 'dt' => 0),
array('db' => 'siparisTarih','dt' => 1 , "formatter" =>function($siparisTarih){
return turkcetarih_formati('j F Y , l, H:i:s',$siparisTarih);
}),
array('db' => 'siparisNo','dt' => 2 , "formatter" =>function($siparisNo){
return "<a href='' class='btn btn-primary'>MZR{$siparisNo}</a>";
}),
array('db' => 'siparisUser', 'dt' => 3),
array('db' => 'siparisFirma', 'dt' => 4),
array('db' => 'siparisFirma', 'dt' => 5),
array('db' => 'siparisDurum','dt' => 6 , "formatter" =>function($val, $row){
return match ($val) {
0 => 'Sipariş oluşturuldu',
1 => 'Sipariş 1 durumunda',
2 => 'Sipariş 2 durumunda',
3 => 'Sipariş 3 durumunda',
default => 'Durum bulunamadı'
};
}),
);
Burada dikkat etmen gereken PHP 8+ kullanmak ve match işlemindeki sıkı tip denetimi sebebiyle 1,2,3 durumlarının veri tabanında tutulduğu kolona göre integer veya string olmasını kontrol ederek bu sayıları tırnak içine almak veya almamak.