validar fecha que no este repetida....
Publicado por Eduardo (185 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
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
el archivo check_fecha_availablity.php
tiene esto...
debe comprobar que el municipio x ya tenga esa fecha ingresada y si ya está mostrar el alert avisandolo...
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...
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


0