muhtemelen tıkladığın eleman görülmesede diğer ikisinin üstünde kalıyor. backround color la bakabilirmisin. hepsine farklı renk ver.
soru çok güzel ama bende cevap yok :) umarım güzel cevaplar gelir
kullandığın curl kodlarını tam yazarsan daha hızlı cevap alabileceğini düşünüyorum.
fulltext ne bilmiyorum ama
veritabanını oluştururken verinin türüne göre seçmelisin
örnek : ad soyad gireceksen - char uygundur. çünkü bir isim 255 karakteri geçemez.
eğer çok büyük bir yazı girmeyeceksen varchar 8000 karaktere kadar veriyi içerisinde bulundurabilir
ama ben ürün ID si gibi sayısal küçük karamlar kullanacam dedigin bir tablo varsa da int senin için uygundur.
şuna dikkat etmeni öneririm! para birimi yada tarih gibi kavramlarla filtrelemeler yapacaksan.
tarih için date yada tam zaman dilimi izin datetime
para birimi içinde float uygundur.
daha detaylı bilgi için şu kaynak uygun gibi.
Sonunda istediğim gruplamayı bitirdim. birgün birine lazım olursa kodlar aşağıdadır.
var people = [
{
data: {
family: "3",
entertime: "2023-02-24 12:59:00",
}
},
{
data: {
family: "5",
entertime: "2023-02-24 12:11:01",
}
},
{
data: {
family: "6",
entertime: "2023-02-24 12:30:02",
}
},
{
data: {
family: "5",
entertime: "2023-02-24 12:41:00",
}
},
{
data: {
family: "17",
entertime: "2023-02-24 12:16:01",
}
},
{
data: {
family: "17",
entertime: "2023-02-24 12:41:01",
}
},
{
data: {
family: "8",
entertime: "2023-02-24 12:31:00",
}
},
{
data: {
family: "17",
entertime: "2023-02-24 12:17:03",
}
},
{
data: {
family: "15",
entertime: "2023-02-24 12:00:03",
}
},
];
var peopleTimeSort = people.sort((a, b) => a.data.entertime.localeCompare(b.data.entertime));
var peopleTemp = structuredClone(peopleTimeSort);
var peopleDel = structuredClone(peopleTemp);
var peopleGroup = [];
var peopleTempFamily = [];
[...peopleTemp].forEach( (n,i) => {
if (i === 0) {
peopleGroup.push(n);
delete peopleDel[i];
peopleTempFamily.push(n.data.family);
peopleDel.forEach( (nn,ii) => {
if(n.data.family === nn.data.family) {
peopleGroup.push(nn);
delete peopleDel[ii];
}
})
} else {
if (peopleTempFamily.indexOf(n.data.family) < 0) {
peopleGroup.push(n);
delete peopleDel[i];
peopleTempFamily.push(n.data.family);
peopleDel.forEach( (nn,ii) => {
if(n.data.family === nn.data.family) {
peopleGroup.push(nn);
delete peopleDel[ii];
}
})
}
}
});
console.log(peopleGroup);
çok aydınlatıcı oldu teşekkür ederim.
bunu tüm userlar aynı şekilde görecekse güvenilir bir yanı yok.
hayır birtek ben göreceğim diyorsanızda "şlskj3221kj12lk213" isimli klasörü zaten kimse bulamaz. sabitte olsa olur.
sen login kısmını ve sorgu kısımlarını sıkı tutarsan bu tarz şeylere gerek kalmayacaktır. hackleyecek adam IP den serverıda hackleyebilir. biz bir dönem hackleyemediğimiz sitelerin hostinglerinden host alıp servera sızıyorduk. yani sen mükemmel kusursuz bir sitede yapsan. sonuçta server açıgı diye birşey var. :)
tayfun beyin dediği gibi sorgu kısımlarını sıkı tutmak lazım.
@tayfunerbilen yok tayfun bey aşağıda daha detaylı anlattım. umarım anlatabilmişimdir. 2. filtre deki dizilişe ihtiyacım var
//JSON ARRAY'IMIZ
1: { grup: A, time: 19:50 }
2: { grup: B, time: 19:30 }
3: { grup: C, time: 19:32 }
4: { grup: B, time: 19:55 }
5: { grup: D, time: 19:49 }
6: { grup: E, time: 19:15 }
1 . Filtre zamana göre olursa İD ler şu şekilde diziliyor
// Bu zamana göre filtrelemede sorun yok.
6: { grup: E, time: 19:15 }
2: { grup: B, time: 19:30 }
3: { grup: C, time: 19:32 }
5: { grup: D, time: 19:49 }
1: { grup: A, time: 19:50 }
4: { grup: B, time: 19:55 }
2 . Filtrede ise istediğim şu; zamana göre sırala ama şu grup kuralına da uy!
Aynı gruptan diyelim ki (B) , 2 tane var. Ama biri saat olarak en sona denk geliyor. İşte o en sona kalmayacak. 1. B nin peşine yazılacak. Yani şöyle gözükecek. ve devamında diğer gruplarda da böyle düzen varsa onlara da uygulayacak
6: { grup: E, time: 19:15 }
2: { grup: B, time: 19:30 }
4: { grup: B, time: 19:55 } // bu normal "sort" işlemlerinde sona denk geliyor. bana burada B nin altında lazım
3: { grup: C, time: 19:32 }
5: { grup: D, time: 19:49 }
1: { grup: A, time: 19:50 }
neden iki panel kullanıyorsun ? adminin panelin şifresini user dan mı ayırmaya çalışıyorsun?
eğer önemsizse
mysql e access diye tablo eklersin.
hangi userların admin panele erişebileceğini oradan yönetirsin
sessionı da
$_SESSION["login"] = "true,false"; // 1. login olup olmadığı 2. admin panele erişimi olup olmadığı
bu şekilde süzer ona göre giriş çıkışı kontrol edebilirsin
acaba anlatamadım mı? yoksa yazının uzunluğumu sorun oldu.
aslında şu kombinasyon için izlemem gereken birkaç komut adı belirtseniz ben function u uyarlarım.
var people = [
{
data: {
id: "1",
family: "1",
grouptotal: "2",
groupname: "A1",
newtime: "2023-02-24 12:24:00",
},
data: {
id: "2",
family: "1",
grouptotal: "2",
groupname: "A1",
newtime: "2023-02-24 12:24:00",
}
}
];
burada diyelim önce saati ben kendi içinde sıraladım.
people[1] in yerini people[3] ün altına taşıyacagım.
nasıl bir array komutu kullanmalıyım ? yani data dizinini komple yer değiştirmeliyim.