Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    4

    Aggiungere mesi a variabile di tipo "date" lato php php

    Ciao a tutti, ecco il mio problema: ho una tabella mysql con 2 campi: data_inizio, tipo; il primo è un campo del tipo predefinito in mysql "date", l'ultimo è un semplice campo dove può venire inserito solo "s" oppure "p";

    faccio una query, e oltre ai 2 campi, voglio che mi visualizzi una terza colonna data_fine facendo data_inizio+TOT mesi, ma deve fare +3 mesi se il campo tipo contiene "s", + 5 mesi invece se il campo tipo contiene "p".

    ho pensato di fare una select *, data_inizio+interval '3' months as data_fine from tabella... dopo avere messo i risultati in variabili dal nome $data_inizio, $data_fine, $tipo,
    vorrei ora sapere se c'è un modo in php, tramite un if($row='p'){
    echo il valore di data_fine+2mesi
    }
    else{
    echo $data_fine così com'è!}

    come fare? ho letto dei vari consigli di memorizzare le date in int con mktime, ma io per la scuola devo per forza usare il campo date! help

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    per scuola? mmmh... allora è meglio non postare codice...

    ...cmq si può lavorare:

    - da sql creando una query un po' più elaborata che tratti la cosa
    - da php semplicemente lavorando con le funzioni per le date: il tuo esempio andrebbe abbastanza bene... devi semplicemente fare i calcoli


    altro indizio: nella query puoi selezionare anzichè il campo così com'è, filtrato dalla funzione sql che converte il valore nel timestamp corrispondente, così in php ti trovi quello

  3. #3
    Utente di HTML.it L'avatar di sir daniel
    Registrato dal
    Dec 2007
    residenza
    Romania
    Messaggi
    379
    Se vuoi farlo con PHP avrai bisogno di funzioni per le date.
    Ecco un GRANDE spunto strtotime()
    BUT. Honestly - Clarity without the comfortHonest writing by Nicola Mustone on the messy overlap between humans and tech.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    4
    grazie mille per la disponibilità e velocità per ora la prima soluzione mi piace parecchio, ovvero quella di cercare di ottenere dalla query già il timestamp e poi lavorare su quello... ma nno so quale funzione usare in mysql :S

  5. #5
    Utente di HTML.it L'avatar di sir daniel
    Registrato dal
    Dec 2007
    residenza
    Romania
    Messaggi
    379
    Originariamente inviato da test_90
    grazie mille per la disponibilità e velocità per ora la prima soluzione mi piace parecchio, ovvero quella di cercare di ottenere dalla query già il timestamp e poi lavorare su quello... ma nno so quale funzione usare in mysql :S
    Cerca sul manuale MySQL le funzioni per le date
    BUT. Honestly - Clarity without the comfortHonest writing by Nicola Mustone on the messy overlap between humans and tech.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    4
    grazie mille per l'aiuto e soprattutto per avermi fatto ragionare ho risolto trovando la funzione di cui sopra. ora però mi chiedo, se voglio fare in modo di ordinare i risultati per data_fine, cioè la variabile che trovo sommando 2 mesi o 3 mesi a seconda che tipo='s' oppure 'p' come faccio? con un semplice order by data_fine nella query non me la cavo, perchè non so a prescindere se a quella data dovrò aggiungere 2 o 3 mesi spero di essere stato chiaro grazie di nuovo

  7. #7
    Utente di HTML.it L'avatar di sir daniel
    Registrato dal
    Dec 2007
    residenza
    Romania
    Messaggi
    379
    Mmmm allora...

    allora, supponiamo che tu hai un array con tutti i dati estratti dal database.

    Io proseguirei così:

    Aggiungerei i mesi a tutte le date e successivamente farei un ordinamento sull'array.
    BUT. Honestly - Clarity without the comfortHonest writing by Nicola Mustone on the messy overlap between humans and tech.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.