MySQL,PHP;检测dateTimePicker日期是否已被获取并禁用
我使用dateTimePicker.js、MySQL和PHP生成一个在线事件日历,它允许用户在日历中设置日期并用自己的名字注册,所有数据都存储在MySQL数据库中 数据存储在表中的方式如下:MySQL,PHP;检测dateTimePicker日期是否已被获取并禁用,php,mysql,jquerydatetimepicker,Php,Mysql,Jquerydatetimepicker,我使用dateTimePicker.js、MySQL和PHP生成一个在线事件日历,它允许用户在日历中设置日期并用自己的名字注册,所有数据都存储在MySQL数据库中 数据存储在表中的方式如下: if (isset($_POST['from'])) { if ($_POST['from']!="") { // Recibimos el fecha de inicio y la fecha final desde el form $i
if (isset($_POST['from']))
{
if ($_POST['from']!="")
{
// Recibimos el fecha de inicio y la fecha final desde el form
$inicio = _formatear($_POST['from']);
// y la formateamos con la funcion _formatear
$final = _formatear($_POST['from']);
// Recibimos el fecha de inicio y la fecha final desde el form
$inicio_normal = $_POST['from'];
// y la formateamos con la funcion _formatear
$final_normal = $_POST['from'];
// Recibimos los demas datos desde el form
$titulo = evaluar($_POST['title']);
// y con la funcion evaluar
$body = evaluar($_POST['title']);
// reemplazamos los caracteres no permitidos
$clase = evaluar($_POST['class']);
//checar si fecha existe
// insertamos el evento
$query="INSERT INTO eventos VALUES(null,'$titulo','$body','','$clase','$inicio','$final','$inicio_normal','$final_normal')";
$query2="INSERT INTO dbbackup VALUES(null,'$titulo','$body','','$clase','$inicio','$final','$inicio_normal','$final_normal')";
// Ejecutamos nuestra sentencia sql
$conexion->query($query);
$conexion->query($query2);
// Obtenemos el ultimo id insertado
$im=$conexion->query("SELECT MAX(id) AS id FROM eventos");
$row = $im->fetch_row();
$id = trim($row[0]);
// para generar el link del evento
$link = "$base_url"."descripcion_evento.php?id=$id";
// y actualizamos su link
$query="UPDATE eventos SET url = '$link' WHERE id = $id";
// Ejecutamos nuestra sentencia sql
$conexion->query($query);
// redireccionamos a nuestro calendario
}
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(150) COLLATE utf8_spanish_ci DEFAULT NULL,
`body` text COLLATE utf8_spanish_ci NOT NULL,
`url` varchar(150) COLLATE utf8_spanish_ci NOT NULL,
`class` varchar(45) COLLATE utf8_spanish_ci NOT NULL DEFAULT 'event-important',
`start` varchar(15) COLLATE utf8_spanish_ci NOT NULL,
`end` varchar(15) COLLATE utf8_spanish_ci NOT NULL,
`inicio_normal` varchar(50) COLLATE utf8_spanish_ci NOT NULL,
`final_normal` varchar(50) COLLATE utf8_spanish_ci NOT NULL,
PRIMARY KEY (`id`)
然后在日历中显示:
var calendar = $('#calendar').calendar(options);
$('.btn-group button[data-calendar-nav]').each(function()
{
var $this = $(this);
$this.click(function()
{
calendar.navigate($this.data('calendar-nav'));
});
});
$('.btn-group button[data-calendar-view]').each(function()
{
var $this = $(this);
$this.click(function()
{
calendar.view($this.data('calendar-view'));
});
});
$('#first_day').change(function()
{
var value = $(this).val();
value = value.length ? parseInt(value) : null;
calendar.setOptions({first_day: value});
calendar.view();
});
}(jQuery));
看起来是这样的:
然后用户保存一个日期,如下所示:
if (isset($_POST['from']))
{
if ($_POST['from']!="")
{
// Recibimos el fecha de inicio y la fecha final desde el form
$inicio = _formatear($_POST['from']);
// y la formateamos con la funcion _formatear
$final = _formatear($_POST['from']);
// Recibimos el fecha de inicio y la fecha final desde el form
$inicio_normal = $_POST['from'];
// y la formateamos con la funcion _formatear
$final_normal = $_POST['from'];
// Recibimos los demas datos desde el form
$titulo = evaluar($_POST['title']);
// y con la funcion evaluar
$body = evaluar($_POST['title']);
// reemplazamos los caracteres no permitidos
$clase = evaluar($_POST['class']);
//checar si fecha existe
// insertamos el evento
$query="INSERT INTO eventos VALUES(null,'$titulo','$body','','$clase','$inicio','$final','$inicio_normal','$final_normal')";
$query2="INSERT INTO dbbackup VALUES(null,'$titulo','$body','','$clase','$inicio','$final','$inicio_normal','$final_normal')";
// Ejecutamos nuestra sentencia sql
$conexion->query($query);
$conexion->query($query2);
// Obtenemos el ultimo id insertado
$im=$conexion->query("SELECT MAX(id) AS id FROM eventos");
$row = $im->fetch_row();
$id = trim($row[0]);
// para generar el link del evento
$link = "$base_url"."descripcion_evento.php?id=$id";
// y actualizamos su link
$query="UPDATE eventos SET url = '$link' WHERE id = $id";
// Ejecutamos nuestra sentencia sql
$conexion->query($query);
// redireccionamos a nuestro calendario
}
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(150) COLLATE utf8_spanish_ci DEFAULT NULL,
`body` text COLLATE utf8_spanish_ci NOT NULL,
`url` varchar(150) COLLATE utf8_spanish_ci NOT NULL,
`class` varchar(45) COLLATE utf8_spanish_ci NOT NULL DEFAULT 'event-important',
`start` varchar(15) COLLATE utf8_spanish_ci NOT NULL,
`end` varchar(15) COLLATE utf8_spanish_ci NOT NULL,
`inicio_normal` varchar(50) COLLATE utf8_spanish_ci NOT NULL,
`final_normal` varchar(50) COLLATE utf8_spanish_ci NOT NULL,
PRIMARY KEY (`id`)
蓝色和红色的圆点是已经占用的日期,颜色只是表示不同的类别,我已经锁定了星期日和星期六以及当前日期之前的日期,但我不知道如何禁用已经占用的日期
我尝试使用一个查询获取“inicio_normal”,它是存储在我的表中的日期值,然后我将它与“$inicio”进行比较,后者是用户从日历中选择的值(在将其格式化为MySQL可以存储的日期之前),因此,如果值相同,我知道日期已经被记录,如果我可以显示一条消息或类似的东西,但它不起作用
我的数据库如下所示:
if (isset($_POST['from']))
{
if ($_POST['from']!="")
{
// Recibimos el fecha de inicio y la fecha final desde el form
$inicio = _formatear($_POST['from']);
// y la formateamos con la funcion _formatear
$final = _formatear($_POST['from']);
// Recibimos el fecha de inicio y la fecha final desde el form
$inicio_normal = $_POST['from'];
// y la formateamos con la funcion _formatear
$final_normal = $_POST['from'];
// Recibimos los demas datos desde el form
$titulo = evaluar($_POST['title']);
// y con la funcion evaluar
$body = evaluar($_POST['title']);
// reemplazamos los caracteres no permitidos
$clase = evaluar($_POST['class']);
//checar si fecha existe
// insertamos el evento
$query="INSERT INTO eventos VALUES(null,'$titulo','$body','','$clase','$inicio','$final','$inicio_normal','$final_normal')";
$query2="INSERT INTO dbbackup VALUES(null,'$titulo','$body','','$clase','$inicio','$final','$inicio_normal','$final_normal')";
// Ejecutamos nuestra sentencia sql
$conexion->query($query);
$conexion->query($query2);
// Obtenemos el ultimo id insertado
$im=$conexion->query("SELECT MAX(id) AS id FROM eventos");
$row = $im->fetch_row();
$id = trim($row[0]);
// para generar el link del evento
$link = "$base_url"."descripcion_evento.php?id=$id";
// y actualizamos su link
$query="UPDATE eventos SET url = '$link' WHERE id = $id";
// Ejecutamos nuestra sentencia sql
$conexion->query($query);
// redireccionamos a nuestro calendario
}
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(150) COLLATE utf8_spanish_ci DEFAULT NULL,
`body` text COLLATE utf8_spanish_ci NOT NULL,
`url` varchar(150) COLLATE utf8_spanish_ci NOT NULL,
`class` varchar(45) COLLATE utf8_spanish_ci NOT NULL DEFAULT 'event-important',
`start` varchar(15) COLLATE utf8_spanish_ci NOT NULL,
`end` varchar(15) COLLATE utf8_spanish_ci NOT NULL,
`inicio_normal` varchar(50) COLLATE utf8_spanish_ci NOT NULL,
`final_normal` varchar(50) COLLATE utf8_spanish_ci NOT NULL,
PRIMARY KEY (`id`)
有什么帮助吗?谢谢。如果您已经在数据库中选择了日期。。只要搜索一下是否有巧合。像
SELECT * FROM TABLE WHERE DATE = '$datetime'
这会带来任何巧合,如果与您尝试输入的日期一致,那么只需在代码中添加if/else即可
if( $query != 0 ) { // insert new calendar event }
else { // display message informing an event is already set on that time }
如果您已经在数据库中选择了日期。。只要搜索一下是否有巧合。像
SELECT * FROM TABLE WHERE DATE = '$datetime'
这会带来任何巧合,如果与您尝试输入的日期一致,那么只需在代码中添加if/else即可
if( $query != 0 ) { // insert new calendar event }
else { // display message informing an event is already set on that time }
我找到了一个非常简单的方法来实现这一点,DateTimeSpicker本身没有一个函数来启用/禁用已采取的日期或时间,因此使用查询将新寄存器与数据库中的寄存器进行比较是最好的
if (isset($_POST['MY_INPUT_FIELD']))
{
$chek= $_POST['MY_INPUT_FIELD'];
$queryt ="SELECT * FROM my_table WHERE my_tIme_in_my_table='$chek'";
$RESULT_OF_QUERY = $conexion->query($queryt);
if (mysqli_num_rows($RESULT_OF_QUERY)>0)
{
//It pops up a message to the user
$message = "La fecha ya ha sido tomada, ingresa una nueva";
echo "<script type='text/javascript'>alert('$message');</script>";
}
elseif($_POST['MY_INPUT_FIELD']!="")
{
//DO ALL THE STUFF
}
if(isset($\u POST['MY\u INPUT\u FIELD']))
{
$chek=$\u POST['MY\u INPUT\u FIELD'];
$queryt=“从我的表格中选择*,其中我的表格中的我的时间='$chek';
$RESULT\u OF_QUERY=$conexion->QUERY($queryt);
if(mysqli_num_行($RESULT_OF_QUERY)>0)
{
//它会向用户弹出一条消息
$message=“La fecha ya sido tomada,ingresa una nueva”;
回显“警报('$message');”;
}
elseif($\u POST['MY\u INPUT\u FIELD']!=“”)
{
//做所有的事情
}
一个问题是DateTimePicker允许用户添加一个时间,很明显,由于秒数不同,两个用户的日期永远不会相同,因此我在datetimepciker.js中禁用了时间,以防您需要使用分钟和秒。我找到了一种非常简单的方法来实现这一点,DateTimePicker本身没有函数to启用/禁用已采取的日期或时间,因此使用查询将新寄存器与数据库中的寄存器进行比较是最好的
if (isset($_POST['MY_INPUT_FIELD']))
{
$chek= $_POST['MY_INPUT_FIELD'];
$queryt ="SELECT * FROM my_table WHERE my_tIme_in_my_table='$chek'";
$RESULT_OF_QUERY = $conexion->query($queryt);
if (mysqli_num_rows($RESULT_OF_QUERY)>0)
{
//It pops up a message to the user
$message = "La fecha ya ha sido tomada, ingresa una nueva";
echo "<script type='text/javascript'>alert('$message');</script>";
}
elseif($_POST['MY_INPUT_FIELD']!="")
{
//DO ALL THE STUFF
}
if(isset($\u POST['MY\u INPUT\u FIELD']))
{
$chek=$\u POST['MY\u INPUT\u FIELD'];
$queryt=“从我的表格中选择*,其中我的表格中的我的时间='$chek';
$RESULT\u OF_QUERY=$conexion->QUERY($queryt);
if(mysqli_num_行($RESULT_OF_QUERY)>0)
{
//它会向用户弹出一条消息
$message=“La fecha ya sido tomada,ingresa una nueva”;
回显“警报('$message');”;
}
elseif($\u POST['MY\u INPUT\u FIELD']!=“”)
{
//做所有的事情
}
一个问题是DateTimePicker允许用户添加时间,很明显,由于秒数的差异,两个用户的日期永远不会相同,因此我在datetimepciker.js中禁用了时间,以防您需要使用分和秒。
DateTimePicker.js
可以是任何东西。这就是您碰巧有一个名为在您的系统上。如果它是一个常用的jquery库,那么您应该包含一个指向它的链接。如果它是自定义代码,您应该直接将它包含在您的问题中。dateTimePicker.js
可以是任何内容。这就是您的系统上碰巧有一个名为的文件。如果它是一个常用的jquery库,那么您应该包含你需要一个链接。如果是自定义代码,你应该直接在你的问题中包含它。谢谢!你的回答对我不起作用,因为我的记录过去有分钟和秒,我刚刚禁用了它,现在它起作用了。谢谢!你的回答对我不起作用,因为我的记录过去有分钟和秒,我只是禁用了它,现在它起作用了他正在工作。