Merhaba arkadaşlar
veritabanımda masalar adında bir alanım var bu alan içerisindeki 15,54,78,36,14,57,98, şeklinde virgül ile ayrılmış id lerim var. multiple select ile çoklu id gönderiyorum gönderdiğim id ler şu şekilde 54,36,25
performans kaybı yaşamadan gönderdiğim id leri veritabanında sorgulayıp veri varsa yazdırmam gerekiyor bu konu hakkında fikir verebilirmisiniz.
PHP ile virgüllü verileri virgüllü alanda arama
10
●164
- 06-01-2022, 22:48:15website adlı üyeden alıntı: mesajı görüntüle
lıke komutu harici performansı dahada artıran bir işlem aradım aslında ama sanırım iş dahada uzadığı için en kestirmesi lıke - 07-01-2022, 00:01:17sizin örneğinizde id sayısının toplamı 3 ise bu olabilir ama multiselect de id sayısının toplam ne geleceği belli olmayacağı için bu işe yaramaz diye düşünüyorum.fatihemre adlı üyeden alıntı: mesajı görüntüle
ayrıca tablo yapısını değiştirmekten kastınız tam olarak nedir yani nasıl birşey öneriyorsunuz. - 07-01-2022, 14:27:21bu verileri JSON türündeki bir sütunda saklayın. [12,89,78] gibi daha sonra mysql'in kendi bünyesinde bulunan json search fonskiyonları ile sorgulama yapabilirsiniz. JSON_SEARCH, JSON_CONTAINS vb inceleyebilirsiniz.
https://dev.mysql.com/doc/refman/8.0...functions.html - 07-01-2022, 15:46:04aslında şuanda tablo yapısın değiştirme lüksüm yok sistemin 90% lık kısmı bitti sadece virgül ile aramada sorunlar yaşıyorum örnek
foreach ($_POST['gelenler'] as $yaz) { $tablo = sorgu kodlarımda $yaz çalıştırıp lazım olan ustid buluyorum foreach ($tablo as $yaz2) { $tablo = sorgu kodlarımda $yaz2 çalıştırıp lazım olan id buluyorum foreach ($tablo as $yaz3) { $sontablo =sorgusunu çalıştırıp $yaz3 ile gelen veriyi find_in_set ile sorgulayıp virgüllü alanda aramayı yapıyorum foreach ($sontablo as $yaz4) { echo $yaz4["firmad_adi"]; } } } }
şeklinde yapıp verileri alıyorum fakat firma adından ilk başdaki $tablo da kaç adet sorgu çekebildiyse o kadar yazdırıyor group by firma_adi da işe yaramadı
yani a firmasından $tablo da 3 adet seçili ise
a firması
a firması
a firması
b firmasından 2 adet seçili ise
b firması
b firması
şeklinde veriyor
bu saatten sonra veritabanı yapısını değiştirmem sistemi yeniden yazmaya eşdeğer buda beni 1-2 aylık bir zarara uğratır bu yüzden bu şekilde çözmek zorundayım