Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/08/2014, 09:01
Avatar de Hyemin
Hyemin
 
Fecha de Ingreso: agosto-2014
Mensajes: 147
Antigüedad: 9 años, 8 meses
Puntos: 0
Obteniendo un valor de una funcion en una llamada

Buentas tardes, estoy trabajando con una aplicacion que genera un listado cuyo contenido muestra el resultado de una consulta MySQL sobre una base de datos, uno de los campos es la fecha de vencimiento de un certificado.

Mi intencion era que cuando el certificado estuvioera por vencer el color del texto fuera rojo y si no verde.

Para eso estoy usando este codigo que funciona bien:

Código PHP:
while ($result_ar mysqli_fetch_assoc($resultado)) {

date_default_timezone_set('America/Mexico_City');   
$hoy = new datetime();       
$vencimiento = new DateTime($result_ar['vencimiento']);
$total $hoy->diff($vencimiento)->format('%a');

if (
$total<90) {
    
$color red;
} else {
    
$color green;

}
        
   
         echo 
"<td> <a  style='color:$color' href='detalles.php?id=".$result_ar['id']."'>".$result_ar['vencimiento']."</a></td>";
         echo 
"</td></tr>\n";
     }
      echo 
"</table>";
    
     
$conexion->close(); 
El codigo precedido me genera correctamente la tabla con el color, la variable $color toma el que coresponde.

Ahora, quiero hacer el código mas simple y estoy tratando de separar todo lo posible el diseño de la prograacion asi que desearía dejar la menor cantidad de código en la pagina utilizando entonces funciones.

Para ello hice un fichero llamado funciones,php y lo puse en "require_nce" del header
Código PHP:
function comparar (){
global 
$color;            
date_default_timezone_set('America/Mexico_City');   
$hoy = new datetime();       
$vencimiento = new DateTime($result_ar['vencimiento']);
$total $hoy->diff($vencimiento)->format('%a');

if (
$total<90) {
    
$color red;
} else {
    
$color green;

}
return  
$color;

Luego modifico el bucle while en la pagina para que quede solo la llamada a la funcion

Código PHP:

while ($result_ar mysqli_fetch_assoc($resultado)) {
call_user_func($comparar);
        
         
 echo 
"<td> <a  style='color:$color' href='detalles.php?id=".$result_ar['id']."'>".$result_ar['vencimiento']."</a></td>";
echo 
"</td></tr>\n";
     }
      echo 
"</table>";
    
     
$conexion->close();
     
        
?> 
El tema es que la funcion no esta dando resultados, o sea no logro obtener de regreso el valor $color