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
    Se vuoi farlo con PHP avrai bisogno di funzioni per le date.
    Ecco un GRANDE spunto strtotime()

  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
    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

  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
    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.

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