maalesef iki kodda çalışmadı
config.php içeriğim
<?php
$host = 'localhost';
$dbname = '......';
$username = '........';
$password = '......,';
$charset = 'utf8';
//$collate = 'utf8_unicode_ci';
$dsn = "mysql:host=$host;dbname=$dbname;charset=$charset";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_PERSISTENT => false,
PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
// PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES $charset COLLATE $collate"
];
try {
$baglanti = new PDO($dsn, $username, $password, $options);
$baglanti->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Bağlantı hatası: ' . $e->getMessage();
exit;
}
?>
Kodda herhangi bir problem görünmüyor.
<?php
include('config.php');
// Debug fonksiyonu
function debug($data) {
echo "<pre>";
print_r($data);
echo "</pre>";
}
$request_uri = $_SERVER['REQUEST_URI'];
$path = parse_url($request_uri, PHP_URL_PATH);
$path = str_replace('-sarki-sozleri', '', $path);
$path_parts = explode('/', trim($path, '/'));
$baslik_url = end($path_parts);
$wisex = ucwords(str_replace('-', ' ', $baslik_url));
// Debug: Gelen değeri kontrol et
debug("Aranan değer: " . $wisex);
// Türkçe karakter dönüşümü
function replaceTurkishChars($str) {
$str = str_replace(
['ı', 'ğ', 'ü', 'ş', 'ö', 'ç', 'İ', 'Ğ', 'Ü', 'Ş', 'Ö', 'Ç'],
['i', 'g', 'u', 's', 'o', 'c', 'I', 'G', 'U', 'S', 'O', 'C'],
$str
);
return $str;
}
$search_term = replaceTurkishChars($wisex);
// Debug: Dönüştürülmüş değeri kontrol et
debug("Dönüştürülmüş değer: " . $search_term);
// LIKE sorgusunu daha esnek hale getirme
$sql = "SELECT * FROM sarkilar WHERE REPLACE(REPLACE(LOWER(baslik), 'ı', 'i'), '-', ' ') LIKE :search_term";
$sorgu = $baglanti->prepare($sql);
$sorgu->execute(['search_term' => '%' . strtolower($search_term) . '%']);
// Debug: SQL sorgusunu ve parametreleri kontrol et
debug("SQL Sorgusu: " . $sql);
debug("Arama terimi: %" . strtolower($search_term) . "%");
$sonuc = $sorgu->fetchAll();
// Debug: Sonuçları kontrol et
if ($sonuc) {
debug("Bulunan sonuçlar:");
debug($sonuc);
} else {
echo "Sonuç bulunamadı.";
// Tüm şarkıları listele
$allSongs = $baglanti->query("SELECT baslik FROM sarkilar LIMIT 10")->fetchAll(PDO::FETCH_COLUMN);
debug("Veritabanındaki ilk 10 şarkı:");
debug($allSongs);
}
// Karakter seti kontrolü
$charsetQuery = $baglanti->query("SHOW VARIABLES LIKE 'character_set%'")->fetchAll(PDO::FETCH_KEY_PAIR);
debug("Veritabanı karakter seti ayarları:");
debug($charsetQuery);
?>Çıkan sonucu paylaşırmısınız, telegram varsa ordan da görüşebiliriz.