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

    problema inserimento data

    Ciao, ragazzi.. c'ho un piccolo problemino..

    in una tabella ho un campo in formato "date" con possbilità di essere NULL;

    io inserisco la data in un <input type="text">

    se nell'imput inserisco la data, non c'è nessun problema;

    il problema ce l'ho quando non inserisco la data

    la query mi restituisce questo errore

    "Incorrect date value: '' for column 'dal' at row 1"

    che devo fa?!?'
    aquatimer2000

  2. #2
    uppete



    aquatimer2000

  3. #3
    Utente di HTML.it L'avatar di M4RCOS
    Registrato dal
    Nov 2005
    Messaggi
    11
    se nell'imput inserisco la data, non c'è nessun problema;

    il problema ce l'ho quando non inserisco la data

    la query mi restituisce questo errore

    "Incorrect date value: '' for column 'dal' at row 1"

    che devo fa?!?'
    Scusa ma a cosa ti serve salvare un valore nullo su db??
    Se poi ci pensi nel momento del submit del form, non ha senso inviare un "nessun valore" e salvarlo su db... è in ogni caso un'azione inutile a meno che tu non voglia sovrascrivere un eventuale data già memorizzata su db..
    In ogni caso necessita di un valore, effettua un controllo sul campo data prima di inserirlo nella query per il salvataggio su db..
    Ciauzz..
    M4RCOS

  4. #4
    ti spiego perchè ho necessità di avere un valore "null";

    ho una tabella con degli incarichi:

    incarico dal (data) al (data).

    il problema è che non conosco la data di fine incarico finchè questo non viene revocato.

    di conseguenza all'inserimento del record conosco solo la data di inizio incarico.
    aquatimer2000

  5. #5
    Utente di HTML.it L'avatar di M4RCOS
    Registrato dal
    Nov 2005
    Messaggi
    11
    :rollo: La risposta al tuo problema è semplice:

    pagina1.php
    <form method="post" action="pagina2.php">
    Dal giorno: <input type="text" name="from_day">
    al giorno: <input type="text" name="to_day">
    <input type="submit">
    </form>


    pagina2.php
    //recupero i dati passati dal precedente form
    $dal_giorno = $_POST['from_day'];
    $al_giorno = $_POST['to_day'];
    //effettuo il controllo delle variabili
    if ($al_giorno==""){
    $query = "INSERT INTO tuaTabella (inizio_incarico) VALUES ($dal_giorno);
    }else{
    $query = "INSERT INTO tua tabella (inizio incarico, fine_incarico) VALUES ($dal_giorno, $al_giorno)";
    }

    //comandi php x salvataggio su db
    .
    .
    .
    Avendo impostato il campo a DATE necessita di un valore nel formato aaaa-mm-gg; ciò significa che se avessi messo "zero" come valore non sarebbe andato bene, figurati un valore nullo; nell'esempio che ti ho scritto sopra mi sono limitato a fare un controllo sui valori che abbiamo passato dalla pagina1 alla pagina2.
    Infatti se il valore di fine incarico è nullo, crea una query in cui compare solo il valore che è stato specificato; al contrario, invece crea la query in cui entrambi i valori vengono inseriti nel db..
    Come soluzione è la più semplice, poi spetta a te fare ulteriori controlli sui campi di testo...
    Buon lavoro!
    M4RCOS

  6. #6
    ok, sei stato chiarissimo!

    dato che ci sto posso farti un'altra domanda?

    io nell'input inserisco la data con uno dei seguenti formati:

    gg.mm.aaaa
    gg-mm-aaaa
    gg/mm/aaaa

    la data però nella tabella va inserita come aaaa-mm-gg

    c'è una funzione che mi permette di formattare la data inserita nell'input nel formato richiesto da MySql?

    grazie per l'help!
    aquatimer2000

  7. #7
    Originariamente inviato da aquatimer2000
    ok, sei stato chiarissimo!

    dato che ci sto posso farti un'altra domanda?

    io nell'input inserisco la data con uno dei seguenti formati:

    gg.mm.aaaa
    gg-mm-aaaa
    gg/mm/aaaa

    la data però nella tabella va inserita come aaaa-mm-gg

    c'è una funzione che mi permette di formattare la data inserita nell'input nel formato richiesto da MySql?

    grazie per l'help!
    non so se e' la soluzione migliore, ma potresti fare cosi':

    $date = "gg.mm.aaaa";

    $day = substr($date, 0, 2);
    $month = substr($date, 3, 2);
    $year = substr($date, 5, 4);

    $newdate = "$year-$month-$day";

    Success in life is a matter not so much of talent and opportunity as of concentration and perseverance.

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.