Ik heb een website waarop je kan zoeken op de pagina's (uit tabel in dbase) alleen is hij nu hoofdletter gevoelig. Hoe kan ik dit oplossen?


        <?php

		if(isset($_POST["zoek"]) && !empty($_POST["zoek"])){ 
		
		$gestuurd = strip_tags(addslashes($_POST["search"])); 
		
		$sql5 = "SELECT
				*
			FROM
				websitepagina
			WHERE     
				(pagina_omschrijving LIKE '%" . $gestuurd . "%'
			OR 
				pagina_omschrijving_2 LIKE '%" . $gestuurd . "%')
			ORDER BY 
				pagina_titel ASC";
		
			$query5 = mysql_query($sql5);
		
		
			if(mysql_num_rows($query5) < '1'){ 
			
			echo ("");
			}
		
			else {
		
			echo '<div id="box-content">';
			echo "<h2>Pagina's</h2>";
}
?>
Wat heb je zelf al geprobeerd, en waarom is het niet gelukt?

Zie:

http://stackoverflow.com/questions/2876789/case-insensitive-for-sql-like-wildcard-statement
http://stackoverflow.com/questions/14007450/how-do-you-force-mysql-like-be-case-sensitive?lq=1
http://stackoverflow.com/questions/8083455/mysql-like-case-sensitive

Edit: zo te zien zou dit dus in theorie moeten werken:

<?php

if(isset($_POST["zoek"]) && !empty($_POST["zoek"])){

$gestuurd = strip_tags(addslashes($_POST["search"]));

$sql5 = "SELECT
*
FROM
websitepagina
WHERE
(pagina_omschrijving COLLATE UTF8_GENERAL_CI LIKE '%" . $gestuurd . "%'
OR
pagina_omschrijving_2 COLLATE UTF8_GENERAL_CI LIKE '%" . $gestuurd . "%')
ORDER BY
pagina_titel ASC";

$query5 = mysql_query($sql5);


if(mysql_num_rows($query5) < '1'){

echo ("");
}

else {

echo '<div id="box-content">';
echo "<h2>Pagina's</h2>";
}
?>
Dank en het werkt inderdaad met COLLATE UTF_8 GENERAL CI

Waarom strip_tags(addslashes(...)) en geen mysql_real_escape_string(..)?

Reageren