Foros del Web » Programando para Internet » PHP »

Guardar campo datetime de un formulario en una base de datos

Estas en el tema de Guardar campo datetime de un formulario en una base de datos en el foro de PHP en Foros del Web. Hola, ante todo muchas gracias a todo el mundo que me quiera ayudar. Vereis, no soy programador ni he estudiado nada relacionado, tan sólo intento ...
  #1 (permalink)  
Antiguo 30/04/2018, 11:06
Usuario no validado
 
Fecha de Ingreso: agosto-2009
Mensajes: 53
Antigüedad: 14 años, 8 meses
Puntos: 1
Guardar campo datetime de un formulario en una base de datos

Hola, ante todo muchas gracias a todo el mundo que me quiera ayudar.

Vereis, no soy programador ni he estudiado nada relacionado, tan sólo intento aprender por mi mismo. Con el método de investigar mucho prueba y error y como no con la ayuda de los foros.

Tengo un formulario con un campo que quiero que me recoga la fecha de hoy y que éste no se pueda modificar. Quiero que se guarde todos los campos en una base de datos, pero me falla el datetime y digo eso porque si lo dejo como date si que funciona.

Código del Formulario:

Código:
<!doctype html>
<html lang="es">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
    <!-- Bootstrap CSS -->

    <title>Solicitud de Material</title>
    
     <!-- JQuery -->
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
     <!-- JQuery -->
         
  </head>
  <body>
  <br>
  <div class="container">
  <span class="text"><h3><strong>Solicitud de Material Auxiliar.</h3></strong></span>
  </div>
  <br>
  	<div class="container">
   		<form action="../php/enviar.php" method="post">
   		
   		<form>
   		<!--Primera linea!-->
  <div class="form-row">
    <div class="form-group col-md-2">
      <label for="fecha_solicitud">Fecha</label>  
      <input type="datetime" class="form-control" id="fecha_solicitud" value="<?php echo date("d/m/Y - H:i");?>" name="fecha_solicitud" readonly>
    </div>
    <div class="form-group col-md-2">
      <label for="cc_solicitante">C.C. Solicitante</label>
      <input type="text" class="form-control" id="cc_solicitante" name="cc_solicitante" placeholder="C.C. Solicitante" required="required">
    </div>
    <div class="form-group col-md-2">
      <label for="turno">Turno</label>
		<select class="form-control" id="turno" name="turno">
			<option value="T1">Turno 1</option>
			<option value="T2">Turno 2</option>
			<option value="T3">Turno 3</option>
		</select>
    </div>
    <div class="form-group col-md-2">
      <label for="linea">Línea</label>
      <input type="text" class="form-control" id="linea" name="linea" placeholder="Línea" required="required">
    </div>
    <div class="form-group col-md-2">
      <label for="punto_entrega">Punto de Entrega</label>
      <input type="text" class="form-control" id="punto_entrega" name="punto_entrega" placeholder="Punto de Entrega" required="required">
    </div>
    <div class="form-group col-md-2">
      <label for="matricula">Matrícula</label>
      <input type="text" class="form-control" id="matricula" name="matricula" placeholder="Matrícula" required="required">
    </div>
  </div>
 <!--Fin Primera linea!-->
 
  <!--Segunda linea!-->
   <div class="form-row">
    <div class="form-group col-md-7">
      <label for="denominacion">Denominación</label>
      <input type="text" class="form-control clonedInput" id="denominacion" name="denominacion" placeholder="Denominación" required="required">
    </div>
    <div class="form-group col-md-3">
      <label for="Referencia">Referencia</label>
      <input type="text" class="form-control clonedInput" id="referencia" name="referencia" placeholder="Referencia" required="required">
    </div>
    <div class="form-group col-md-2">
      <label for="linea">Cantidad</label>
      <input type="number" class="form-control clonedInput" id="cantidad" name="cantidad" placeholder="Cantidad" required="required">
    </div>
  </div> 
   <!--Fin Segunda linea!-->
   <br>
  <button type="submit" value="ENVIAR" class="btn btn-primary">Enviar</button>
</form>
	</div>
    

    <!-- Optional JavaScript -->
    
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
  </body>
  
</html>
Código del enviar.php:

Código:
<?php


//Conectamos con el Servidor con los datos guardados en config.php
$connection = mysqli_connect('localhost', 'root', '');
if (!$connection){
    die("Fallo la conexion con la base de datos" . mysqli_error($connection));
}

// Conecta con la Base de Datos 

$select_db = mysqli_select_db($connection, 'albaranes');
if (!$select_db){
    die("Database seleccionada ha fallado" . mysqli_error($connection));
}

//Recuperar variables

	$fecha_solicitud = $_POST['fecha_solicitud'];
	$cc_solicitante = $_POST['cc_solicitante'];
	$turno =  $_POST['turno'];
	$linea = $_POST['linea'];
	$punto_entrega =  $_POST['punto_entrega'];
	$matricula = $_POST['matricula'];
	$denominacion = $_POST['denominacion'];
	$referencia = $_POST['referencia'];
	$cantidad = $_POST['cantidad'];



//Hacemos la sentencia de SQL

	$query = "INSERT INTO `solicitud_material` (fecha_solicitud, cc_solicitante, turno, linea, punto_entrega, matricula, denominacion, referencia, cantidad) VALUES ('$fecha_solicitud', '$cc_solicitante', '$turno', '$linea', '$punto_entrega', '$matricula', '$denominacion', '$referencia', '$cantidad')";
		$result = mysqli_query($connection, $query);


//Verificamos la sentencia SQL

if(!$result){
	echo"Hubo algun error";
}else{
	echo"Datos guardados correctamente <br> <a href='../index.html'>Volver</a>";
}
	
?>
La base de datos por si alguien quiere hacer pruebas o aprender como yo.

Código:
-- phpMyAdmin SQL Dump
-- version 4.7.4
-- Versión del servidor: 5.7.19
-- Versión de PHP: 7.0.23

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";

--
-- Base de datos: `albaranes`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `solicitud_material`
--

DROP TABLE IF EXISTS `solicitud_material`;
CREATE TABLE IF NOT EXISTS `solicitud_material` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `fecha_solicitud` datetime DEFAULT NULL,
  `cc_solicitante` varchar(70) DEFAULT NULL,
  `turno` varchar(50) DEFAULT NULL,
  `linea` varchar(350) DEFAULT NULL,
  `punto_entrega` varchar(100) DEFAULT NULL,
  `matricula` varchar(100) DEFAULT NULL,
  `denominacion` varchar(200) DEFAULT NULL,
  `referencia` varchar(100) DEFAULT NULL,
  `cantidad` varchar(50) DEFAULT NULL,
  `material_entregado` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

--
-- Volcado de datos para la tabla `solicitud_material`
--

INSERT INTO `solicitud_material` (`id`, `fecha_solicitud`, `cc_solicitante`, `turno`, `linea`, `punto_entrega`, `matricula`, `denominacion`, `referencia`, `cantidad`, `material_entregado`) VALUES
(1, '2018-04-19 00:00:00', '1131', 'T1', 'L141', '16 Planta Alta', '63213', 'Portacapsulas', '108401', '1', NULL),
(2, '2018-04-13 00:00:00', '1131', 'T1', 'L141', '16 Planta Alta', '63213', 'Portacapsulas', '108401', '1', NULL),
(3, '2018-04-13 00:00:00', '1131', 'T1', 'L141', '16 Planta Alta', '63213', 'Portacapsulas', '108401', '1', NULL),
(4, '2018-04-05 00:00:00', '1152', 'T2', 'L150', '15 Planta Baja', '52415', 'Capsula', '105426', '2', NULL),
(5, '2018-04-29 00:00:00', '1523', 'T3', '1524', '15 Planta baja', '56896', 'racor', '125478', '5', NULL);
COMMIT;
  #2 (permalink)  
Antiguo 30/04/2018, 11:22
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Guardar campo datetime de un formulario en una base de datos

cambia esto asi a ver:

Código PHP:
Ver original
  1. <?php echo date("Y-m-d H:i:s");?>

por otro lado, si la fecha no puede ser cambiada, no veo la necesidad de enviarla desde el formulario, simplemente creala en el momento de la inserción:

Código PHP:
Ver original
  1. $fecha_solicitud = date("Y-m-d H:i:s");
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 30/04/2018, 13:09
Usuario no validado
 
Fecha de Ingreso: agosto-2009
Mensajes: 53
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Guardar campo datetime de un formulario en una base de datos

Ya funciona, muchas gracias.

Ahora a cuando quiero mostrar la fecha estoy utilizando:

Código:
<td><?php echo $mostrar['fecha_solicitud'] ?></td>
Pero el formato en el que aparece es:

Código:
2018-04-30 19:08:38
Qusiera que apareciese así:

Código:
30-04-2018 19:08:38
¿Como debo de corregir el codigo?.

Muchas gracias de nuevo.
  #4 (permalink)  
Antiguo 30/04/2018, 15:38
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Guardar campo datetime de un formulario en una base de datos

así:

Código PHP:
Ver original
  1. <?php echo date("d-m-Y H:i a", strtotime($mostrar['fecha_solicitud'])) ?>
__________________
[email protected]
HITCEL

Etiquetas: campo, datetime, funcion, html, mysql, query, select, sql, tabla, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:10.