Muy buenas. Qué tal ?
Tengo una pequeña duda. He hecho un pequeño script para que filtre por la letra inicial del nombre, de la A a la Z (incluye la Ñ). El problema es que al pulsar la Ñ para buscar me salen todas las fichas y no las que comiencen por esta letra. Pongo el script para que lo vean :)
Código PHP:
// Query que muestra un listado total o limitado. También se pueden mostrar solo ordenados por letras
function ficha_general_filtro($letter, $limit, $campo){
$ssql = "SELECT *
FROM wp_famoso";
if(isset($letter) && !ctype_digit($letter) && strlen($letter) == 1 && $letter != ""){
$ssql .= " WHERE cNombre LIKE '" . $letter . "%' ";
}elseif(isset($letter) && !ctype_digit($letter) && strlen($letter) >= 3 && $letter != ""){
$ssql .= " WHERE cNombre LIKE '%" . $letter . "%'
OR cApellido LIKE '%" . $letter . "%'";
}
$ssql .= " ORDER BY " . $campo . " DESC";
if(isset($limit) && ctype_digit($limit) && $limit > 0){
$ssql .= " LIMIT " . $limit . " ";
}
$rs = mysql_query($ssql);
return $rs;
}
Como se puede apreciar, a la función se le pasa una letra, un limit (boleano) y un campo por si se quiere ordenar la lista por ese campo :). Suponiendo que no haya ni campo para ordenar ni limit, $letter solo sería Ñ la sentencia que me da es la siguiente:
SELECT * FROM wp_famoso ORDER BY nFamosoID DESC
Pero si busco por cualquier otra letra, la que sea, pongamos la S, aparece la siguiente consulta:
SELECT * FROM wp_famoso WHERE cNombre LIKE 'S%' ORDER BY nFamosoID DESC
No sé porque la Ñ me da problemas, alguien se le ocurre ?
Gracias :)