Aşağıdaki şekilde sonuç aldım. İşine yarayan olursa Çözüm:
$sonuc=[];
foreach ($tags as $item) {
$result = array_merge($sonuc, explode(',', $item["ingkelimeler"] . ',' .$item["trkelimeler"]));
$results=array_unique(array_flip($result));
$label=array_values(array_flip($results));
}
Daha sade nasıl yapılır bilmem, anlayan biri hata veya eksik varsa düzeltirse sevinirim. bu haliyle benim için çalışıyor.
$temizle = array('*', ')','(');
$kelime = '(*)4a';
$kelime = str_replace($temizle, "", $kelime);
echo $kelime;
Çıktısı = 4a
@makifgokce hocam, tamam oldu. Verdiğiniz kodda köşeli parantez [yerine ( şeklinde yazdım oldu.
.
$array = ('%' . $searched . '%', '%' . $searched . '%');
// ...
"where $where",
$array,
"order BY yazilar.ID ASC"
// ...
hatalı yazmışım düzelttim. Verileri Fonksiyon ile çağırıyorum onda sorun yok.
sadece benim en sonda yazdığım $where ve $array içinin yazımını doğru yapmam lazım. O kısma bakar mısın?
Bu çalışıyor:
$where= 'yazarlar.yazar like ? ' ;
$array='%' . $searched . '%';
Bunun yazımında sorun var : tek tırnak nokta virgül vs bunların yazım şeklinde hata var:
$where= 'yazarlar.yazar like ? or yazilar.icerik like ?' ;
$array='%' . $searched . '%', '%' . $searched . '%';
UYARI: Invalid parameter number: number of bound variables does not match number of tokens
Bir kontrol edebilir misiniz? doğru yazım nedir?
Şu şekil kullandım:
for ($i = 0; $i < count($tags); $i++) {
$tag = array_values(array_unique($tags[$i]["keyw"]));
print_r($tag);
Hata: array_unique() expects parameter 1 to be array, string given in...
Verdiğiniz kodu for dan öncede sonrada eklesemde hata veriyor.
sanırım explode den önce bir şey yapmalıyım ama bulamadım. çözemedim nasıl yaparım.
Evet insanların iki soyad kullandığını atlamışım. Emeğiniz ve ayırdığınız zaman için teşekkür ederim.
dediğinize ek olarak biraz daha kurcaladım ve
if ($k == count($x) - 1)
yerine
if ($k == $x[count($x) - 1])
yazdım. Bu haliyle istediğim gibi oldu yalnız şu detayı atlamışım.
Sadece ilk yazar için kişinin iki soyadı varsa ve bu soyadlar dizi içinde BÜYÜK HARFLE yazılmış burdan bunun soyad olduğunu nasıl algılatabilirim?
Örnek: Ayşe Fatma KARA ÇETİN
Bu haliyle şöyle yazıyor: ÇETİN, Ayşe Fatma KARA
Doğrusu: ÇETİN KARA, Ayşe Fatma
Çok zorluyorum ama doğru sonuç almam çok önemli.
Sanırım tablolamamı değiştirmem ek olarak ad ve soyad sütunlu başka bir tablo tutmam lazım. Bu şekilde algılatmam çok zor sanırım.
@makifgokce, emeğiniz için teşekkür ederim bundan sonrasını yapı olarak çözemeye çalışacağım. İlk kod bloğunuzu çözüm olarak işaretliyorum.
İhtiyacı olan sonraki yorumlardan düzeltmeleri dikkate alsın.
@makifgokce hocam, teşekkürler. Şu kısmı ayarlayamadım verdiğiniz kodda son kişinin adını virgül ile ayrıyor. Hasan, Hüseyin, Siyah (Kişinin adının üç veya daha fazla kelimeli olması sorun yaratıyor)
Tek yazarlıysa Birinci kişinin Soyadı (virgül) Adı olacak Örnek: Ali Beyaz --> Beyaz, Ali
İkinci yazar varsa Örnek: Beyaz, Ali (ve) Veli Kırmızı
Üç yazarlıysa Örnek: Beyaz, Ali (virgül) Veli Kırmızı (ve) Ahmet Turuncu
Sadece İlk isim ters çevrilip virgül ile ayrılacak sonraki yazarlar ismi bozulmadan virgül ile ayrılacak ve son yazardan önce "ve" gelecek.
Uğraştım ama iyi karıştırdım kodunuzu değiştiremedim.
bak burda çeşitli form elemanları var. ihtiyacın olan kısımları kopyala birleştir.
div class'larını ve style kısımlarını kendi css kodlarınla tanımlayabilirsin.