Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/01/2015, 05:59
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: No me devuelve resultados en la condicion WHERE

Cita:
Ah, como detalle, probe directamente la sentencia SQL en el Postgres y tampoco me funciono, pero la lleve a MySQL y si me funciono. Me pueden ayudar a descifrar el problema.
El hecho de que en uno funcione y en el otro no puede estar causado por la definición de la tabla en cada uno. No te olvides que estás hablando de DBMS completamente distintos. No puedes pretender que tengan exactamente la misma estructura ni restricciones.
De hecho, si las columnas de MySQL las hubieses definido como de collation "utf8_bin", por ejemplo, tampoco te funcionaría.

En tu caso, si quieres que se omita la distinción de MAYUSCULAS/minusculas, lo que debes hacer es lo que se suele hacer: igualarlas...

En MySQL, Oracle y otros la solución es simplemente:
Código PHP:
$criterio "";
$txt_criterio "";
if (isset(
$_GET["criterio"])!=""){
   
$txt_criterio $_GET["criterio"];
   
$criterio " WHERE UPPER(nombre_personas) LIKE UPPER('%".$txt_criterio."%')  ";
}
 
$sql="SELECT * FROM tb_personas ".$criterio;
$res=pg_query($sql);
$numeroRegistros=pg_num_rows($res);
if(
$numeroRegistros<=0)
{
    
    echo 
"No se encontraron resultados.";
    
}else{
 
    echo 
"Se encontraron los siguientes resultados: <br/>";
    echo 
$registro["nombre_completo"] ."<br/>";
 

Nota que pongo cada componente de cadena en el WHERE con la funcion UPPER() de MySQL, la cual existe también en otros DBMS.
Creo que también existe en PosgreSQL...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)