Foros del Web » Programando para Internet » PHP »

Reemplazar NULL con str_replace.... Cómo reemplazarlo?????

Estas en el tema de Reemplazar NULL con str_replace.... Cómo reemplazarlo????? en el foro de PHP en Foros del Web. De casualidad alguien puede decirme por qué no me está reemplazando el valor default NULL en esta sentencia de PHP.... str_replace(NULL,"Sin valor",$row['valor']) @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 08/06/2010, 13:04
 
Fecha de Ingreso: junio-2008
Mensajes: 101
Antigüedad: 15 años, 10 meses
Puntos: 0
Reemplazar NULL con str_replace.... Cómo reemplazarlo?????

De casualidad alguien puede decirme por qué no me está reemplazando el valor default NULL en esta sentencia de PHP....

str_replace(NULL,"Sin valor",$row['valor'])

Código PHP:
Ver original
  1. if (!mysql_connect($db_host, $db_user, $db_pwd))
  2.     die("Can't connect to database");
  3.  
  4. if (!mysql_select_db($database))
  5.     die("Can't select database");
  6.  
  7. // sending query
  8. $result = mysql_query("select {$table}.nomb_gpo,{$table}.nomb_ind,valor from {$table} join indicador on {$table}.nomb_ind=indicador.nomb_ind
  9. where nomb_pla='$_REQUEST[plan_inst]' and nomb_cen='$_REQUEST[cen_trabajo]'  and mes='{$mth}' and ano='{$yr}' order by id_ind asc limit 0,3;"
  10. ,$conexion) or die("Problemas en el select result: ".mysql_error());
  11.  
  12. echo "<table id=\"demo4_table\" cellpadding=\"2\" cellspacing=\"1\" border=\"2\"  width=\"453\" align=left >";
  13.  
  14. // printing table rows
  15. echo "<tr><td  rowspan='1' colspan='3' align='center' bgcolor='58ACFA'><b>Instalaciones y Equipos</b></td></tr>\n";
  16.  
  17. while ($row = mysql_fetch_array($result))
  18. {
  19. echo "<TR>";
  20.         echo "<TD>".$row['nomb_ind']."</TD>";
  21.         echo "<TD width=\"83\" align=center>".str_replace(NULL,"Sin valor",$row['valor'])."</TD>";
  22.     echo "</tr>\n";
  23. }

El pequeño gran detalle es que NO me está reemplazando el Valor NULL por "Sin Valor"....

Para verificar que la parte de MySQL sí está trabajando bien pongo lo siguiente:

Código MySQL:
Ver original
  1. mysql> select valor from clau where mes='Nov' and ano=2009 and nomb_pla='Planta 1';
  2. +-------+
  3. | valor |
  4. +-------+
  5. |  NULL |
  6. |  NULL |
  7. |  NULL |
  8. |  NULL |
  9. |  NULL |
  10. |  NULL |
  11. |  NULL |
  12. |  NULL |
  13. |  NULL |
  14. |  NULL |
  15. |  NULL |
  16. |  NULL |
  17. |  NULL |
  18. +-------+
  19. 13 rows in set (0.01 sec)



  #2 (permalink)  
Antiguo 08/06/2010, 13:07
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Reemplazar NULL con str_replace.... Cómo reemplazarlo?????

NULL no es un String

intenta
Código PHP:
Ver original
  1. if(empty($row['valor'])) echo "Sin Valor";
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 08/06/2010, 13:09
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Reemplazar NULL con str_replace.... Cómo reemplazarlo?????

También puedes probar la función is_null.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #4 (permalink)  
Antiguo 08/06/2010, 13:24
 
Fecha de Ingreso: diciembre-2008
Mensajes: 190
Antigüedad: 15 años, 4 meses
Puntos: 6
Respuesta: Reemplazar NULL con str_replace.... Cómo reemplazarlo?????

Buenas, el tema es que el str_replace es para texto, NULL no es texto...
por ej:
Código PHP:
$var NULL;
$var str_replace(NULL,"p",$var);
echo 
$var
No hace nada...distinto seria
Código PHP:
$var "NULL" 
Tenes que probar como te dijeron arriba :
Código PHP:
 if (empty($valor))
  
$valor ="Sin valor"
  #5 (permalink)  
Antiguo 08/06/2010, 15:20
 
Fecha de Ingreso: junio-2008
Mensajes: 101
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Reemplazar NULL con str_replace.... Cómo reemplazarlo?????

Mil gracias por todas las prontas respuestas.....

Ahora entiendo por qué no jalaba....

Entonces, cómo quedaría el código PHP.....

Así todavía sigue sin funcionar....

Código PHP:
while ($row mysql_fetch_array($result))
{
echo 
"<TR>";
        echo 
"<TD>".$row['nomb_ind']."</TD>";
        echo 
"<TD width=\"83\" align=center>";
        if(empty(
$row['valor'])) echo "Sin Valor";
        echo 
"</TD>";
    echo 
"</tr>\n";



qué más le hace falta a mi función IF.....????


Saludos.....
  #6 (permalink)  
Antiguo 08/06/2010, 15:27
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Reemplazar NULL con str_replace.... Cómo reemplazarlo?????

Código PHP:
Ver original
  1. while ($row = mysql_fetch_array($result))
  2. {
  3. echo "<TR>";
  4.         echo "<TD>".$row['nomb_ind']."</TD>";
  5.         echo "<TD width=\"83\" align=center>";
  6.         echo $row['valor'] ? $row['valor'] : "Sin Valor";
  7.         echo "</TD>";
  8.     echo "</tr>\n";
  9. }
intenta asi :P
__________________
More about me...
~ @rhyudek1
~ Github
  #7 (permalink)  
Antiguo 08/06/2010, 15:37
 
Fecha de Ingreso: junio-2008
Mensajes: 101
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Reemplazar NULL con str_replace.... Cómo reemplazarlo?????

Mi buen Hidek1....

Antes que nada 1000 gracias por tu atención y ayuda....

Ahora, el código que me pasaste no usa la función

(empty($row['valor'])) echo "Sin Valor";

por lo que no veo donde me reemplaza el NULL por "Sin Valor".

Ya chequé tu código y no me da resultado..... para mi desgracia...

Agradezco tu atención y ayuda pero tendremos que buscarle más hasta que jale........... jejejeje


Alguna otra sugerencia será bienvenida para probarla....

Saludos a todos....

Última edición por benjaminvera; 08/06/2010 a las 16:12
  #8 (permalink)  
Antiguo 08/06/2010, 16:30
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Reemplazar NULL con str_replace.... Cómo reemplazarlo?????

Empieza por la consulta a la base:
Código MySQL:
Ver original
  1. SELECT IFNULL(valor, 'Sin valor') valor
  2. FROM clau
  3. WHERE mes='Nov' AND ano=2009 AND nomb_pla='Planta 1';
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 09/06/2010, 12:58
 
Fecha de Ingreso: mayo-2010
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
Respuesta: Reemplazar NULL con str_replace.... Cómo reemplazarlo?????

Por lo que he visto los datos te llegan desde una BD, así que podrías hacerlo directamente desde la consulta:

Te pongo un ejemplo:

Código:
$cons="SELECT a.nifAlu,a.nomAlu,m.curso,asi.nomAsi,m.codPro,";

$cons.="COALESCE(m.Nota,'sin nota') nota ";

$cons.="FROM matricula m NATURAL JOIN alumno a NATURAL JOIN asignatura asi";

$cons.=" WHERE (a.nomAlu BETWEEN '".$nomAluIni."' AND '".$nomAluFin."')";

*** Pequeña aclaración:

En la segunda parte de la consulta hay un 'COALESCE' que lo que hace es que los valores nulos de m.Nota los llama 'sin nota'.

"COALESCE ('nombreCampo', 'nombre_de_los_nulos') nombre nuevo del campo "

Así es bastante sencillo, no se si esto aclarará alguna cosa....
  #10 (permalink)  
Antiguo 21/06/2010, 15:58
 
Fecha de Ingreso: junio-2008
Mensajes: 101
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Reemplazar NULL con str_replace.... Cómo reemplazarlo?????

RESUELTO

Me quedó así....

Código PHP:

$result 
mysql_query("select piezas.nomb_gpo,piezas.nomb_ind,IFNULL(valor, 'Sin valor')valor 
from piezas join indicador on piezas.nomb_ind=indicador.nomb_ind 
where nomb_pla='$_REQUEST[planta]' and nomb_cen='$_REQUEST[centro]'  
and mes='{$mth}' and ano='{$yr}' order by id_ind asc limit 0,3;"
,$conexion) or die("Problemas en el select result:&nbsp;".mysql_error());

echo 
"<tr><td  rowspan='1' colspan='3' align='center' bgcolor='58ACFA'><b>Instalaciones y Equipos</b></td></tr>\n";
    while (
$row mysql_fetch_array($result))
    {
        echo 
"<TR>"
        echo 
"<TD>".$row['nomb_ind']."</TD>";
        echo 
"<TD width=\"83\" align=center>".$row['valor']."</TD>";
        echo 
"</tr>\n";
    } 
Saludos......:borrac ho:

Etiquetas: null, reemplazar
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 01:07.