Foros del Web » Programando para Internet » PHP »

Problema con operador IS NOT NULL

Estas en el tema de Problema con operador IS NOT NULL en el foro de PHP en Foros del Web. Hola Tengo una tabla llamada preguntas varios campos, entre ellos: clave_identifi (un auto increment), categoria_test, titulo y explicacion. El caso es que quiero seleccionar las ...
  #1 (permalink)  
Antiguo 28/06/2010, 10:55
 
Fecha de Ingreso: marzo-2008
Mensajes: 17
Antigüedad: 16 años, 8 meses
Puntos: 0
Problema con operador IS NOT NULL

Hola

Tengo una tabla llamada preguntas varios campos, entre ellos: clave_identifi (un auto increment), categoria_test, titulo y explicacion.

El caso es que quiero seleccionar las filas que tienen en explicacion algo dentro, es decir, que ese campo no estea vacío.
Para ello leí que hay que usar el operador is not null pero no consigo que funcione correctamente.

Estoy haciendo la siguiente consulta:

Código PHP:
$query "SELECT * FROM preguntas WHERE categoria_test like '%".$categoria."%' AND explicacion IS NOT NULL"
Luego para mostrar los resultados uso:

Código PHP:
$result mysql_query($query)or die(mysql_error());
;
$num_results mysql_num_rows($result);
for (
$i=0$i <$num_results$i++)
{
    
$j=$i+1;
    
$row mysql_fetch_array($result);
    echo 
'<p><strong>';
    echo 
'<a href="explicacion.php?clave_identifi='.$row['clave_identifi'].'">Explicaciones '.$j.'</a>'
    echo 
'</strong></p>';

El problema estoy seguro de que es la consulta porque en los resultados me muestra explicaciones en las que el campo explicacion no contiene nada (is null), cosa que yo no quiero.

Alguien me podría ayudar por favor?
  #2 (permalink)  
Antiguo 28/06/2010, 11:05
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Problema con operador IS NOT NULL

Es que un campo vacío no quiere decir que sea nulo. Para ello vas a tener que usar algo como
Código MySQL:
Ver original
  1. SELECT * FROM tabla WHERE columna != '' AND columna LIKE '%palabra%'
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 28/06/2010, 11:08
Avatar de nodws  
Fecha de Ingreso: septiembre-2008
Ubicación: Mexico
Mensajes: 108
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Problema con operador IS NOT NULL

los espacios deben causar un conflicto, pero se soluciona facil
Código:
$result = mysql_query($query)or die(mysql_error());
;
$num_results = mysql_num_rows($result);
for ($i=0; $i <$num_results; $i++)
{
    $j=$i+1;
    $row = mysql_fetch_array($result);
if(strlen($row[explicacion])>5){
    echo '<p><strong>';
    echo '<a href="explicacion.php?clave_identifi='.$row['clave_identifi'].'">Explicaciones '.$j.'</a>'; 
    echo '</strong></p>';
}
}
  #4 (permalink)  
Antiguo 28/06/2010, 12:02
 
Fecha de Ingreso: marzo-2008
Mensajes: 17
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Problema con operador IS NOT NULL

Gracias a los dos, en especial a abimaelrc, la consulta ya funciona a la perfección.

Un saludo

Etiquetas: null, operador
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:21.