PHP - validar fecha que no este repetida....

 
Vista:
Imágen de perfil de Eduardo
Val: 165
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

validar fecha que no este repetida....

Publicado por Eduardo (175 intervenciones) el 24/05/2020 03:00:07
Hola felicidades para todos... por acá nuevamente

tengo un formulario que ingresan una fecha (campo tipo date) el cual a saber ingresa la fecha en la base de datos en el formato dd/mm/aaaa

pues le puse que en el ingreso la coinversion año-mm-dd sea pasada a dd/mm/aaaa usando esto

1
$fecha_reporte1 = date("d/m/Y", strtotime($fecha_reporte));

adicional a eso también se agrega el nombre de un municipio al que agregó la información (toma ese valor de una variable de session) de modo que en la base de datos se almacena id, fecha, municipio

hasta allí todo bien.. una vez almacenada la fecha en la base de datos.. no se puede almacenar para el mismo municipio 2 fechas iguales... es decir si almacenaron pro ejemplo 05/05/2020 no se puede agregar nuevamente 05/05/2020 por que saltaría un error.. (un alert) y inhabilita los otros campos para que nos e proceda con el diligenciado... he usado este código que es el que envía en tiempo real la consulta a .. dentro del php a check_fecha_availablity.php

Script que envia la consulta en tiempo real a check_fecha_availablity.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<script type="text/javascript" src="checador/jquery-1.3.2.js"></script>
<link href="checador/css.css" media="screen" rel="stylesheet" type="text/css" />
<script type="text/javascript">
$(document).ready(function() {
	$('#fecha_reporte').blur(function(){
 
		$('#Info').html('<img src="" alt="" />').fadeOut(1000);
 
		var fecha_reporte = $(this).val();
		var dataString = 'fecha_reporte='+fecha_reporte;
 
		$.ajax({
            type: "POST",
            url: "check_fecha_availablity.php",
            data: dataString,
           // success: function(data) {
			   success: function(data) {
                if(data!="") {
					//------------------------------------------------
 
                    $("#placa").attr("disabled", "disabled");
					$("#conductor").attr("disabled", "disabled");
					$("#hora1").attr("disabled", "disabled");
					$("#hora2").attr("disabled", "disabled");
					$("#novedad").attr("disabled", "disabled");
					$("#button").attr("disabled", "disabled");
                } else {
                   <!------ $("#nic").removeAttr("disabled");-------->
                    $("#placa").removeAttr("disabled");
					 $("#conductor").removeAttr("disabled");
					 $("#hora1").removeAttr("disabled");
					$("#hora2").removeAttr("disabled");
                                        $("#novedad").removeAttr("disabled");
					$("#button").removeAttr("disabled");
                }
                $('#Info').fadeIn(1000).html(data);
                //alert(data);
            }
        });
    });
});
</script>

el archivo check_fecha_availablity.php

tiene esto...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php include("seguridad.php");?>
<?php
sleep(1);
$municcc=$_SESSION['municipio'];
//------------------------
define('DB_SERVER', 'localhost');
define('DB_SERVER_USERNAME', 'usuario');
define('DB_SERVER_PASSWORD', 'contrasena');
define('DB_DATABASE', 'basededatos');
 
$conexion = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD);
mysql_select_db(DB_DATABASE, $conexion);
//----------------------------
 
if($_REQUEST)
{
   $fecha_reporte1 = $_REQUEST['fecha_reporte'];
   //$fecha_reporte2 = date("d/m/Y", strtotime($fecha_reporte1));
    $query = "SELECT municipio, fecha_reporte FROM reporte WHERE fecha_reporte = '$fecha_reporte1' AND municipio = '$municcc' ";
    //$query = "SELECT * FROM reporte WHERE fecha_reporte = '$fecha_reporte2'";
   $results = mysql_query($query) or die('ok');
   //codigo que excluye los campos nic vacios ya que hay
   if(!empty($fecha_reporte1)){
   if(mysql_num_rows(@$results) > 0)
   {
      echo '<div id="Error"></div>';
      echo "<script type=''>alert('Ya existe una fecha agregada $fecha_reporte1 para el municipio de $municcc');</script>";
    }else{
      echo "";
   }
   }
}
?>

debe comprobar que el municipio x ya tenga esa fecha ingresada y si ya está mostrar el alert avisandolo...
1
$query = "SELECT municipio, fecha_reporte FROM reporte WHERE fecha_reporte = '$fecha_reporte1' AND municipio = '$municcc' ";

el problema es

1. al usar campo tipo date no funciona...
2. convierto el campo date a text para hacer las pruebas escribiendo la fecha así 05/05/2020 y así si sale el alert avisándome de que ya existe una fecha

3. si notan he comentado conversiones de fecha en el check_fecha_availablity.php puesto que he tratado de trasformar la fecha que usa por defecto los campos tipo date (año-mes-día) para trasformarlo en dd/mm/aaaa el formato que esta en la base de datos para que los compare sin problemas... pero no me funciona

4. al poner cualquier fecha que no esta en la base de datos me arroja que ya existe es decir aunque este la fecha sale que existe y aunque tampoco este sale que también existe...


ayuda por favorrrrr...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

validar fecha que no este repetida....

Publicado por Julio (830 intervenciones) el 24/05/2020 07:43:16
Hola.

Tú mismo dices que en modo texto te funciona. Por tanto, lo que pasará es que los datos de tu fecha a comparar y los de la base de datos tienen formatos distintos.

Si guardas una fecha que en la base de datos está con formato Y-m-d por ejemplo, asegúrate de que la fecha que quieres comparar está en ese mismo formato.

Lo que debes hacer es mirar el formato que te devuelve la base de datos y el formato de la fecha que le estás pasando a comparar. Asegúrate de que tienen el mismo formato y te deberá ir bien.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar