ridurre codice esplosione date

ciao, è possibile scalare (si dice così? ma che cavolo vuol dire scalare?) questo codice? insomma ridurlo?

$parti = explode('-', $_POST['data_corso']);
            $data_corso=$parti[2].'-'.$parti[1].'-'.$parti[0];
            $parti_2 = explode('-', $_POST['data_corso_2']);
            $data_corso_2 = $parti_2[2].'-'.$parti_2[1].'-'.$parti_2[0];
            $parti_3 = explode('-', $_POST['data_corso_3']);
            $data_corso_3 = $parti_3[2].'-'.$parti_3[1].'-'.$parti_3[0];
            $parti_4 = explode('-', $_POST['data_corso_4']);
            $data_corso_4 = $parti_4[2].'-'.$parti_4[1].'-'.$parti_4[0];

grazie

inviato 8 anni fa
gabar-el
X 0 X

Ciao,

sapendo che tutte le date sono in formato: 'yyyy-mm-dd'

potresti utilizzare anche questo codice:

$data_corso = substr($_POST['data_corso'], 8, 2).'-'.substr($_POST['data_corso'], 5, 2).'-'.substr($_POST['data_corso'], 0, 4);

e così via...

 :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

non capisco la funzione dei numeri....

risposto 8 anni fa
gabar-el
X 0 X

Qui tutta la documentazione necessaria...

http://it2.php.net/manual/it/function.substr.php

Perdonami se sono sbrigativo ma l'influenza mi attanaglia  :'(

 :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

Per compattare quelle righe potresti usare un ciclo FOR

for($i = 0; $i < 4; $i++) {
   $parti = explode('-', $_POST['data_corso'][$i]);
   $data_corso[$i] = $parti[2].'-'.$parti[1].'-'.$parti[0];
}

per usare questo codice devi modificare il form, in particolare il nome dei campi che contengono le date, da chiamare TUTTI così:

name="data_corso[]"

inoltre le date ora saranno disponibili in un array: $data_corso[0], $data_corso[1], ecc.

 :bye:

P.S.: la scalabilità in informatica è la capacità di un software di adeguarsi senza troppi problemi al crescere o al diminuire del numero di utenti e più in generale delle necessità di utilizzo. Un software scalabile non pone vincoli al numero minimo e massimo di utenti.

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

grazie per le info sulla scalabilità....

ma cambiando i nomi nel form poi come mi regolo col db?

risposto 8 anni fa
gabar-el
X 0 X

il primo campo "data_corso" diventa $_POST['data_corso'][0], il successivo campo "data_corso" diventa $_POST['data_corso'][1]. Quindi è l'ordine con cui i campi "data_corso" sono presenti nel form a differenziare i diversi valori.

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

cavolo mi sa che mi sono incasinato....  :P

ho inserito il codice così:

            for($i = 0; $i < 4; $i++) {
            $parti = explode('-', $_POST['data_corso_'][$i]);
            $data_corso_[$i] = $parti[2].'-'.$parti[1].'-'.$parti[0];
            }

ho aggiunto come si vede un "_", questo perchè la colonna db della prima data era chiamato data_corso e non data_corso_1, ho modificato il nome della colonna nel db, i nomi dei campi data nel form e delle rispettive variabili nella query, ma non riesco a inserire dati. ho sbagliato qualcosa?

risposto 8 anni fa
gabar-el
X 0 X

qualcosa devo aver combinato perchè ho ripristinato il codice precedente ed è uguale. ricevo questo bell'errore:

Incorrect date value: '--' for column 'data_corso_1' at row 1

eppure la data la inserisco correttamente, stessa cosa se non metto nulla, ne deduco che sia un problema del db, ma ho controllato e mi sembra tutto a posto. suggerimenti?

thanks...

risposto 8 anni fa
gabar-el
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda