PDA

View Full Version : [PHP] Date inserite attraverso input


gianpaolo11
23-02-2016, 10:34
Buongiorno a tutti, come da titolo vorrei inserire la data attraverso un input html e relativo bottone, in un db.
Ho letto questa discussione che permette di trovare una soluzione
http://www.hwupgrade.it/forum/showthread.php?t=2080921

Ma non ho capito dove utilizzare la soluzione adottata! :(

Allego i codici.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<meta name="" content="">
</head>
<body>
<form action="aggiungi_sogg.php" name="aggiungi soggetto" method="post">
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-3">
<label for="form-datanascita">Data di nascita</label>
<input type="text" name="datanascita" placeholder="GG/MM/AAAA" class="form-control field" id="form-datanascita" />
</div>
<input type="submit" value="Salva e procedi"/> </form>
</body>
</html>


<?php
$con=mysqli_connect("127.0.0.1","root","","prov");

if(mysqli_connect_errno())
{
echo "CONNESSIONE A MYSQL FALLITA: ".mysqli_connect_error();
}

$sql="INSERT INTO soggetti(DataNascita)
VALUES
('$_POST[datanascita]')";


if(!mysqli_query($con,$sql))
{
die ('Errore: '.mysqli_error($con));
}
echo " Inserimento avvenuto con successo ";
mysqli_close($con);
?>


Grazie in anticipo

Hellzakk
23-02-2016, 10:59
Prima di analizzare il codice sarebbe opportuno capire a che punto sei con i componenti necessari?
hai attivo e funzionante il server web e db?

gianpaolo11
23-02-2016, 12:06
Prima di analizzare il codice sarebbe opportuno capire a che punto sei con i componenti necessari?
hai attivo e funzionante il server web e db?

Si ovviamente tutto attivo. Lavoro in locale con XAMPP e il db č creato.
Se dal form metto la data in formato americano viene scritta correttamente nel db, mentre la data italiana mi restituisce degli zeri.

Hellzakk
23-02-2016, 12:27
devi formattarla in modo tale che il db interpreti correttamente la data inserita, in mysql il formato data viene interpretato come anno-mese-giorno mentre tu la inserisci come giorno-mese-anno.

Dato che non utilizzi l'orm devi formattare la variabile contenente la data da inserire attraverso questa funzione (http://php.net/manual/en/datetime.format.php)

esempio esplicativo (http://www.italianwebdesign.it/formattare-le-date-con-database-mysql-e-php/)

gianpaolo11
23-02-2016, 20:24
Risolto cosė:

$data_convertire = ($_POST ['datanascita']);
list($d, $m, $y) = explode ("/", $data_convertire);
$data_covertita = $y."/".$m."/".$d;




$sql="INSERT INTO soggetti(DataNascita)
VALUES
('$data_covertita')";

Grazie per l'aiuto :)

P.s. Come metto il [Risolto] nel titolo?

Hellzakk
24-02-2016, 08:41
ti suggerisco di imparare ed utilizzare la funzione date_format, se devi lavorare sulle date č la via migliore

Daniels118
24-02-2016, 16:38
Risolto cosė:

$data_convertire = ($_POST ['datanascita']);
list($d, $m, $y) = explode ("/", $data_convertire);
$data_covertita = $y."/".$m."/".$d;




$sql="INSERT INTO soggetti(DataNascita)
VALUES
('$data_covertita')";

Grazie per l'aiuto :)

P.s. Come metto il [Risolto] nel titolo?
Che succede se nel campo scrivo qualcosa che non č una data, per esempio "pippo"? :D

Hellzakk
24-02-2016, 17:47
Magari lha validato tramite html...

Daniels118
24-02-2016, 18:57
Magari lha validato tramite html...
L'ipertesto non č capace di trasferire anche il tono delle affermazioni, ma spero si tratti di una battuta :D

Hellzakk
25-02-2016, 09:41
ho dimenticato per strada una faccina.. :D