MySQL Stored Procedure Select statement içerisinde like kullanımı

Standard

Merhaba Arkadaşlar;

MySQL yeni başlayanlar ya da stored procedure kullanımında sorun yaşanlar özellikle bu yazı işinize yarayacaktır düşüncesindeyim.

Bir procedure yaptınız ve select içerisinde like ifadesini kullanacaksınız; ama nasıl? Yanıtı aşağıdaki gibi  olacaktır.


BEGIN
SET @kriter := CONCAT('%',TRIM(degisken),'%');
SELECT
*
from tabo
WHERE
field = @kriter;
END

İyi çalışmalar…

Local makinanızda MariaDB için “Can’t init tc log” çözümü

Standard

Merhaba Arkadaşlar;

Yaşadığım bir sorunu internette araştırırken bulduğum çözümü sizinle paylaşmak istedim. Lokalimde Mac üzerinde xampp kullanıyorum. MySQL server Can’t init tc log çıkıtısını vererek çalışmadı. Bu durumda aşağıda yolunu verdiğim tc.log dosyasını silerek yeniden başlatmayı denediğinizde mysql sunucunuz başarılı bir şekilde başlatılmış olacaktır.

/Applications/XAMPP/xamppfiles/var/mysql/tc.log

İyi çalışmalar…

PHP ile Content Bot yaparken preg_match_all içerisinde birden fazla pattern kullanımı

Standard

Merhaba Arkadaşlar;

Bir site üzerinden curl kullanarak bot yapmak herkesin malumu kolay bir işlem; ama ya birden fazla pattern ihtiyacı duyarsanız?


<ul><li><span>ürün 1</span></li><li><span>ürün 2</span></li><li><span>ürün 3</span></li></ul>

Yukarıdaki içerik için aşağıdaki pattern doğru olacaktır;

#<li><span>(.*?)</span></li>#

ancak

<ul><li><span>ürün 1</span></li><li><div>indirimde</div><span>ürün 2</span></li><li><span>ürün 3</span></li></ul>

gibi bir eleman ile karşılaştığında preg_match_all çalışmayı durduracak bu satıra gelene kadar aldıklarını döndürecektir. Peki bu durumda ne yapacağız?

Şu anda elimizde iki adet pattern var. Ya ilki ya da ikincisi ile eşleşenleri listelemek istiyoruz. Bunu şöyle düşünün; veri 1 ya da 2 ye eşit ise işlemi gerçekleştir şeklinde bir if bloğumuz var. Kısaca OR operatörü kullanacağız. preg_match_all içerisinde OR operatörü kullanımı için patternlar arasında | (düz çizgi) kullanacağız.

Aşağıdaki örnek kod satırı sorunu çözmüş olacaktır.


preg_match_all('#<li><span>(.*?)</span>|<div>indirimde</div><span>(.*?)</span></li>#',$pattern,$arrRet);
print_r($arrRet);

Çıktı aşağıdaki gibi olacaktır.

Array
(
[0] => Array
(
[0] =>
ürün 1
[1] =>
indirimde
ürün 2

[2] =>
ürün 3
)

[1] => Array
(
[0] => ürün 1
[1] =>
[2] => ürün 3
)

[2] => Array
(
[0] =>
[1] => ürün 2
[2] =>
)

)

Burada çıktı dizisinin birinci ve ikinci indislerinde ki puzzle vari çıktı yapısını farketmişsinizdir. Birinci patterna uyan verileri 1 numaralı indiste, “|” ile ifade ettiğimiz or operatörü ile belirttiğimiz ikinci patterna uyan veriler 2 numaralı indiste listelenmiş durumda.

Umarım işinize yarar, iyi çalışmalar…