Autor Tema: HELP PHP Y MYSQL Por Favor!!!!  (Leído 836 veces)

Desconectado Black_Jccl

  • PHPerit@
  • *
  • Mensajes: 3
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
HELP PHP Y MYSQL Por Favor!!!!
« en: 05 de Abril de 2015, 14:23:30 pm »
Hola a todos soy nuevo en esto foro, bueno tengo un problema estoy desarrollando un CRM con PHP y MySql de momento es algo pequeño pero estoy teniendo problemas con el siguiente código en PHP
--- Funcion en PHP -----
function listar(){
$lista = array();
$link = getConexion();
$query ="SELECT seg_cliente,seg_unid_negocio,seg_programa_servicio,seg_rp_comercial,seg_fecha_requerimiento,
seg_fecha_ultimo_contac,seg_fecha_proximo_contac,seg_actividad,seg_status,seg_nom_propuesta,seg_cod_cap,
seg_fr_moneda,seg_valor_venta,seg_consultor,seg_observaciones,
CASE (DATEDIFF(now(), (select seg_fecha_proximo_contac from seg_comercial))) WHEN 0 THEN 'ROJO' WHEN 1 THEN 'NARANJA' WHEN 2 THEN 'NARANJA' ELSE 'SIN COLOR' END
FROM seg_comercial order by seg_fecha_proximo_contac asc" ;
$result = @mysql_query($query, $link)
or die(mysql_error());

while($fila = mysql_fetch_array($result)){
$lista[] = $fila;
}
return $lista;
}
?>
---- Linea de Codigo en HTML ----
<td class="<?php echo $mostrar_seg['.estado_rojo'];?>"><?php echo $mostrar_seg['seg_fecha_proximo_contac'];?></td>
-------- Fin de Codigo ------
Lo que quiero es que cuando llegue por ejemplo al dia 02/04/2015 se ponga en rojo y que cuando falte dos días para que se cumpla el dia se coloque en color Naranja , pasando el dia 02/04/2015 no tenga ningún color, Por favor alguien me puede ayudar y disculpe mi falta de conocimiento
 

Comunidad PHPeros

HELP PHP Y MYSQL Por Favor!!!!
« en: 05 de Abril de 2015, 14:23:30 pm »

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:HELP PHP Y MYSQL Por Favor!!!!
« Respuesta #1 en: 07 de Abril de 2015, 07:52:15 am »
No guardes una fecha en si en la base de datos. Mejor almacena un valor timestamp con time(). Después es fácil sacar el calculo con 2 días de antelación con una simple resta (Incluyo un producto por cuestiones de comodidad personal) que sería:

Código: [Seleccionar]
$timestamp_evento - (2*24*60*60) // 2 días, 24 horas, 60 minutos, 60 segundos = 2 días expresados en segundos
Esto daría como resultado el valor timestamp de 2 días antes. Con solo comprobar que el timestamp actual es mayor que  $timestamp_evento - (2*24*60*60) y menor que  $timestamp_evento ya tendrías.

Código: [Seleccionar]
if($time() >= ($timestamp_evento - (2*24*60*60)) && $time <= $timestamp_evento){
      // ...

Un saludo.
Twitter: @JoakoM010



Desconectado Black_Jccl

  • PHPerit@
  • *
  • Mensajes: 3
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:HELP PHP Y MYSQL Por Favor!!!!
« Respuesta #2 en: 07 de Abril de 2015, 16:28:03 pm »
Hola juaquin Gracias por responder y tu tiempo mira lo que hice fue esto
                $fechaHoy       = new DateTime();
                $fechaDosDias   = new DateTime();
                $fechaDosDias->add(new DateInterval('P2D'));
                $fechas =   array(
                'hoy'   =>  array(
                'fecha' =>  $fechaHoy->format('Y-m-d'),
                'color' =>  'naranja'),
    'pasadomanana'  =>  array(
        'fecha' =>  $fechaDosDias->format('Y-m-d'),
        'color' =>  'rojo'
    )
);
$fechaDemo      =   $mostrar_seg['seg_fecha_proximo_contac'];
$colorEtiqueta  =   'no-color';

if($fechaDemo == $fechas['hoy']['fecha']){
    $colorEtiqueta = $fechas['hoy']['color'];
}elseif ($fechaDemo == $fechas['pasadomanana']['fecha']) {
    $colorEtiqueta = $fechas['pasadomanana']['color'];

}
              ?>
y en el query solo hago un select normal

 $query ="SELECT seg_cliente,seg_unid_negocio,seg_programa_servicio,seg_rp_comercial,seg_fecha_requerimiento,
                            seg_fecha_ultimo_contac,seg_fecha_proximo_contac,seg_actividad,seg_status,seg_nom_propuesta,seg_cod_cap,
                            seg_fr_moneda,seg_valor_venta,seg_consultor,seg_observaciones
    FROM seg_comercial order by seg_fecha_proximo_contac asc" ;

Desconectado Black_Jccl

  • PHPerit@
  • *
  • Mensajes: 3
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:HELP PHP Y MYSQL Por Favor!!!!
« Respuesta #3 en: 07 de Abril de 2015, 16:33:38 pm »
pero ahora tengo un problema como guardo de mi formulario en mi BD una fecha he buscado por muchos sitios y no he encontrado una solución mira tengo esto:

por metodo POST:
Código: [Seleccionar]
$data_seg = array('cliente' => $_POST['cliente'],
'unidad_de_negocio' => $_POST['unidad_de_negocio'],
'programa_servicio' => $_POST['programa_servicio'],
'responsable_comercial' => $_POST['responsable_comercial'],
'fecha_reque' => $_POST['fecha_reque'],
'fecha_conc' => $_POST['fecha_conc'],
'fecha_proxc' => $_POST['fecha_proxc'],
'actividad_comercial' => $_POST['actividad_comercial'],
'estatus_comercial' => $_POST['estatus_comercial'],
'nombre_propuesta' => $_POST['nombre_propuesta'],
'codigo_cap' => $_POST['codigo_cap'],
'tipo_moneda' => $_POST['tipo_moneda'],
'valor_venta' => $_POST['valor_venta'],
'consultor' => $_POST['consultor'],
'observaciones' => $_POST['observaciones']);
registrar($data_seg);
Código: [Seleccionar]
function registrar($data_seg){

    $link = getConexion();
    $cliente = mysql_real_escape_string($data_seg['cliente']);
    $unidad_de_negocio = mysql_real_escape_string($data_seg['unidad_de_negocio']);
    $programa_servicio = mysql_real_escape_string($data_seg['programa_servicio']);
    $responsable_comercial = mysql_real_escape_string($data_seg['responsable_comercial']);
    $fecha_reque = mysql_real_escape_string($data_seg['fecha_reque']);
    $fecha_conc = mysql_real_escape_string($data_seg['fecha_conc']);
    $fecha_proxc = mysql_real_escape_string($data_seg['fecha_proxc']);
    $actividad_comercial = mysql_real_escape_string($data_seg['actividad_comercial']);
    $estatus_comercial = mysql_real_escape_string($data_seg['estatus_comercial']);
    $nombre_propuesta = mysql_real_escape_string($data_seg['nombre_propuesta']);
    $codigo_cap = mysql_real_escape_string($data_seg['codigo_cap']);
    $tipo_moneda = mysql_real_escape_string($data_seg['tipo_moneda']);
    $valor_venta = mysql_real_escape_string($data_seg['valor_venta']);
    $consultor = mysql_real_escape_string($data_seg['consultor']);
    $observaciones = mysql_real_escape_string($data_seg['observaciones']);
    $query = "INSERT INTO seg_comercial(seg_cliente,seg_unid_negocio,seg_programa_servicio,seg_rp_comercial,seg_fecha_requerimiento,
                            seg_fecha_ultimo_contac,seg_fecha_proximo_contac,seg_actividad,seg_status,seg_nom_propuesta,seg_cod_cap,
                            seg_fr_moneda,seg_valor_venta,seg_consultor,seg_observaciones)
               VALUES('$cliente','$unidad_de_negocio','$programa_servicio','$responsable_comercial','$fecha_reque',
                '$fecha_conc',[b]NOW()[/b],'$actividad_comercial','$estatus_comercial','$nombre_propuesta','$codigo_cap','$tipo_moneda',$valor_venta,'$consultor','$observaciones')";
    @mysql_query($query, $link)
        or die(mysql_error());

    return mysql_insert_id($link);
}

lo estoy guardando como NOW y eso esta mal como transformo ese dato a fecha para que mysql lo pueda ver

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:HELP PHP Y MYSQL Por Favor!!!!
« Respuesta #4 en: 08 de Abril de 2015, 00:35:34 am »
Perdona, no entendí lo que me dijiste con esto último.
¿Tratas de guardar una fecha definida por el usuario en el cliente o guardar la fecha actual en el servidor?.

Te doy un consejo:
Si imprimes time(); te arrojará un valor numérico que vendría siendo el timestamp actual (Del momento en que se llamó a esa función).

Si revisamos la documentación de date(); en el sitio oficial de PHP (http://php.net/manual/es/function.date.php) nos dice que:
Código: [Seleccionar]
string date ( string $format [, int $timestamp = time() ] )Si observamos bien la sintaxis de esta función podrás observar que se pasa un parámetro opcional que vendría siendo un valor timestamp para mostrarlo en un formato "legible" para el usuario.

Saludos.
Twitter: @JoakoM010