MySQL Like sensibilitate majuscule si litere mici
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
alexinio3d
- Mesaje:96
MySQL Like sensibilitate majuscule si litere mici
Salutare.
De curand am terminat de facut un site cu conectare la baza de date prin mysqli unde am intampinat o problema.
Cand caut un cuvant in baza de date cu operatorul LIKE imi cauta exact dupa ceea ce am scris, adica eu daca caut cuvantul
carte in baza de date si-mi gaseste in tabel sub forma
Carte atunci nu mi-l ia ca bun.
Interogarea am facuto cu in felul urmator:
Cod: Selectaţi tot
$sql = $connect->query("SELECT * FROM `tabel` WHERE `coloana` LIKE '%carte%") or trigger_error($sql->error, E_USER_ERROR);
if($sql->num_rows > 0){
echo $sql->num_rows;
}else{
echo "Nu s-a gasit nici un rezultat";
}
Oare care ar fii problema si cum as putea rezolva tot baiul acesta?
Siteuri create / configurate de mine :
SilvoProject.Ro ( Magazin Online ) :
SilvoProject.Ro
TreiSute.Ro ( Comunitate de gaming ) :
TreiSute.Ro
MarPlo
Mesaje:4343
Salut
Preblema nu e de la MySQLi, ci de la baza de date MySQL. In mysql 5.5 , operatorul LIKE e fara sensibilitate la majuscule si litere mici. Probabil e o versiune ma veche de 5.5.
In cazul asta, tabelele trebuie create adaugand instructiunea:
CHARACTER SET utf8 COLLATE utf8_general_ci
Cod: Selectaţi tot
CREATE TABLE nume_tabel (id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, coloana VARCHAR(2550) NOT NULL DEFAULT 0) CHARACTER SET utf8 COLLATE utf8_general_ci
Sau adaugi:
COLLATE utf8_general_ci direct in interogarea Select.
Cod: Selectaţi tot
$sql = $connect->query("SELECT * FROM `tabel` WHERE `coloana` LIKE '%carte%' COLLATE utf8_general_ci") or trigger_error($sql->error, E_USER_ERROR);
- Sufixul "_ci" e pentru Case-Insensiitive.