Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Inserire una data in un campo "date" di mysql

    Ciao a tutti,
    ho un modulo html con il quale si possono passare delle date ad uno script php che memorizza le date in un database MYSQL ed in particolare in un campo di tipo "date".
    La data viene passata allo script nella forma:
    giorno
    mese
    anno

    e poi mediante una variabile io la formatto in questo modo: giorno/mese/anno. Ad esempio supponiamo che quest'ultima variabile si chiami $data_formattata, io vorrei memorizzare questa data nel database.....ho provato ma non funziona ovvero la data non si memorizza, ma bensi il campo mysql viene compilato in questo modo 0000-00-00. Ricordo che il campo è di tipo "date"
    Credo che il problema sia dovuto proprio al fatto che il campo sia di tipo "date"

    Come posso risolvere? Preferirei che il campo sia di tipo "date" perchè in una seconda pagina questi dati vengono visualizzati ed ordinati in base alla data decrescente.

    Qualche consiglio?

  2. #2
    Utente di HTML.it L'avatar di zakros
    Registrato dal
    Oct 2000
    Messaggi
    509
    Non capisco il problema, nn sai usare le funzioni di stringa x formattare la data in 0000-00-00?

  3. #3
    posto un codice di esempio così forse è più chiaro:
    codice:
    <?php
    // Recupero i dati dal Form
    
    $giorno =   $_POST['giorno'];  
    $mese  =  	$_POST['mese'];
    $anno	=	$_POST['anno'];
    
    // formatto la data
    $data	="$giorno/$mese/$anno";
    
    // Mi collego la Database		
    		include("link..........");  
    	
    //Inserisco i dati nel Database
    		$query = "INSERT INTO prova_data (data) VALUES ('$data')";		
    
    // Controllo che i dati siano stati inseriti
    				if (mysql_query($query, $db))
    				{				
    				// i dati sono stati inseriti
    				header("location: /inserimento_riuscito.php");
    				}else{				
    				// Si è verificato un errore durante l'inserimento
    				header("location: errore.php");}
    ?>
    Il problema è che i dati vengono inseriti nel database ma nel campo della data non viene inserita la data che il modulo html passa allo script, ma bensi viene sempre inserita questa data: 0000-00-00

    Perchè?

  4. #4
    Utente di HTML.it L'avatar di zakros
    Registrato dal
    Oct 2000
    Messaggi
    509
    IL campo data del DB usa questa formattazione 0000-00-00 (nn puoi cambiarlo) , quindi dovresti formattarla in questo modo prima di inserirla,

    $data ="$anno-$mese-$giorno";

    dopodiche quando la estrai la riformatti in 00-00-0000

    $data_formattata=substr($data_dal_db,8,2)."-".substr($data_dal_db,5,2)."-".substr($data_dal_db,0,4);

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Non puoi inserirla come fai tu.

    La devi inserire per forza in questo formato
    $data = $anno.'-'.$mese.'-'.$giorno;

    poi con date_format la visualizzi come ti pare

    select date_format(data,"%d/%m/%Y") as data from prova_data

  6. #6
    Grazie 1000!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.