css de :nth-last-child() sözde sınıfı ile şöyle yapabilirsin;
.row img:nth-last-child(-n+5) {
border-bottom: none;
}
Sadece veritabanından ilişkili verileri silmek olsaydı Foreign Key ile tabloları birbirine bağlardın. Burada ana tablon resim kategori tablon, diğer tablolarını foreign key ile silme işlemi için bağladığında kategoriyi sildiğinde otomatik olarak ona ait diğer tablolardaki verilerinde silinir.
Ek olarak kategorini silmeden önce kateori resimlerini çekip öyle silersin. Alttada sadece resimleri silebileceğin bir kod yazarsın işin daha da kolaylaşır :)
şöyle dener misin;
<?php
$lokasyon=$db->query("SELECT * from tbl_haritalar_lokasyon WHERE Durum = 1 and MapID = ".$HaritaID)->fetchAll(PDO::FETCH_ASSOC);
$lokasyonlar = [];
foreach ($lokasyon as $loc) {
$lokasyonlar[] = "['{$loc['aciklayic_baslik']}', '{$loc['Latitude']}', '{$loc['Longitude']}']";
}
?>
<script>
var locations = [
<?=implode(',', $lokasyonlar)?>
];
</script>
yalnız eval tam da bu gibi durumlar için var zaten. eval kullanmak istememenin sebebi nedir?
eval kullanmak istemezsen, aşağıdaki gibi uzun bir fonksiyona ihtiyacın olacak :)
function calculate(input){
var f = { add : '+'
, sub : '-'
, div : '/'
, mlt : '*'
, mod : '%'
, exp : '^' };
f.ooo = [[ [f.mlt] , [f.div] , [f.mod] , [f.exp] ],
[ [f.add] , [f.sub] ]];
input = input.replace(/[^0-9%^*\/()\-+.]/g,'');
var output;
for(var i=0, n=f.ooo.length; i<n; i++ ){
var re = new RegExp('(\\d+\\.?\\d*)([\\'+f.ooo[i].join('\\')+'])(\\d+\\.?\\d*)');
re.lastIndex = 0;
while( re.test(input) ){
output = calc_internal(RegExp.$1,RegExp.$2,RegExp.$3);
if (isNaN(output) || !isFinite(output)) return output;
input = input.replace(re,output);
}
}
return output;
function calc_internal(a,op,b){
a=a*1; b=b*1;
switch(op){
case f.add: return a+b; break;
case f.sub: return a-b; break;
case f.div: return a/b; break;
case f.mlt: return a*b; break;
case f.mod: return a%b; break;
case f.exp: return Math.pow(a,b); break;
default: null;
}
}
}
console.log( calculate('4+7*8-4/2') )
Malesef php tarafında bu tarz bilgileri detaylı bir şekilde alamazsın. En fazla ip adresine göre konum alabilirsin oda şehir en fazla bölge olarak alınır. Google'ın yaptığı tek bir şey değil, Chrome tarayıcısı onların, android onların, gmail vb. uygulamalar herkesin telefonlarında kurulu :) Bırakta onlar da o kadarcık veriyi alsınlar zaten.
Şunu yapabilirsin, HTML5'in geolocation api'sini kullanıp koordinatları alırsın ve google maps'e bu koordinatları göndererek adres isteyebilirsin.
ilgili makale: https://prototurk.com/html/gelocation-api-kullanimi
valla yoğunum dostlar ama bu iki konuda da yakın zamanda video çekeceğim söz :) bu sayfa geçişleri için kullandğım fonksiyon şöyle bir şey;
function request(url, container, elem, menu, end, hide, hist) {
NProgress.start();
$.ajax({
url: SITE_URL + url,
beforeSend: function (request) {
if (hide) {
request.setRequestHeader("hide", hide);
if (hist) request.setRequestHeader("history", true);
}
},
success: function (response) {
if (elem) {
if ($(elem).data('remove')) {
$($(elem).data('remove')).removeClass('active');
}
}
if (elem && menu) {
$(menu).removeClass('active').filter(elem).addClass('active');
}
$(container).html(response);
reloadAjaxElements();
if (hist) {
$('a[href="' + SITE_URL + url + '"]').closest('ul').find('li').removeClass('active');
$('a[href="' + SITE_URL + url + '"]').parent('li').addClass('active');
}
Prism.highlightAll();
if (end !== true) {
var data = url + '||' + container;
if (hide) data += '||' + hide;
history.pushState(data, null, SITE_URL + url);
}
$('.popup').remove();
$('.full-container').removeClass('passive');
NProgress.done();
}
});
}
bunu derste daha net açıklayacağım yine de fikir olması adına :)
PHP iyelik eki ile ilgili bir sınıf vardı, inceleyebilirsin;
https://github.com/cengizhancaliskan/iyelik-eki
virgül ile ekletebilirsin. Örneğin;
$ids = [1,2,3,4,5,6,7,8];
$query = $db->prepare('INSERT INTO tablo_adi SET kolon_adi = :ids');
$result = $query->execute([
'kolon_adi' => implode(',', $ids)
]);
var_dump($result);
Daha sonra ayrıştırırken de FIND_IN_SET() kullanabilirsin.
https://www.youtube.com/watch?v=MQoXH9yNUyo
belki alternatif olarak base64 formatında session'da tutulabilirsin yükleme işlemi yapmadan
mysql'de nasıl yapıyorsan php tarafında da aynı aslında.
$query = $db->query('INSERT INTO tablo_adi (id, ad, soyad) VALUES
(1, "Tayfun", "Erbilen"),
(2, "Test", "Test"),
(3, "Test2", "Test2")')->fetch();