因此,我进行了搜索系统测试(此代码从名为“ diakok”的数据库中搜索项目),并且出现了问题。 当我输入我的名字(GéróKristóf)时,它说数据库中没有这样的名字,但是当我将其写为Gero Kristof时,它会找到正确的名字(但由于这些特殊原因,它没有写出名字)字母),而数据库中有é和ó而不是e和o。 我尝试过更改数据库和代码中的编码类型,但是没有任何效果。 (使用没有特殊字符的名称,就可以正常工作)
<?php
$keresesi_tipus = 'felhasznalonev';
$keresesi_kifejezes = trim($_POST['keresesi_kifejezes']);
header("Content-type: text/html; charset=utf-8");
if (!$keresesi_kifejezes) {
echo "Nem adott meg keresni való nevet. (1-es hibakód)";
exit;
}
if (!get_magic_quotes_gpc()) {
$keresesi_tipus = addslashes($keresesi_tipus);
}
@ $adatbazis = new mysqli('localhost', 'root', '', 'diakok');
if (mysqli_connect_errno()) {
echo "Hiba! Nem sikerült csatlakozni az adatbázishoz. (2-es hibakód)";
exit;
}
$lekerdezes = "SELECT * FROM diakok WHERE ".$keresesi_tipus
." LIKE '%".$keresesi_kifejezes."%'";
$talalat = $adatbazis->query($lekerdezes);
$talalatok_szama = $talalat->num_rows;
echo "<p>A keresésnek megfelelő diákok száma: ".$talalatok_szama."</p>";
for ($i = 0; $i < $talalatok_szama; $i++) {
$sor = $talalat->fetch_assoc();
echo "<p><strong>".($i+1).". Teljes neve: ";
echo htmlspecialchars(stripslashes($sor['teljes_nev']));
echo "</strong><br /> Felhasználóneve: ";
echo stripslashes($sor['felhasznalonev']);
echo "<br /> Kategóriája: ";
echo stripslashes($sor['kategoria']);
echo "<br />";
echo "</p>";
}
$talalat->free();
$adatbazis->close();
?>