Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234

    Restituire data in formato italiano

    Ciao a tutti!
    Ho provato a leggere diversi topic ma data probabilmente la mia scarsa conoscenza non sono riuscito ad applicare le varie soluzioni al mio caso specifico!
    Ho una query che interroga il mio database e va a leggere il campo "datap" dove la data è scritta in questo modo "YYYY-MM-DD"..

    Il codice è questo:
    codice:
    $tot = 1000;	# il numero di prodotti da visualizzare
    $i = 0;		# variabile che servirà da indice (che incrementeremo)
    $query = "SELECT A.artp,A.artp2,A.artp3,A.artp4,A.artp5,A.idpr,A.eticp,A.titp,A.recei,A.datap,A.datac,A.imgcop,A.supp,A.przp,A.idcat,A.sottp,A.divarp1,A.divarp2,A.divarp3,A.divarp4,B.idar,B.nomear
    			FROM prodotti AS A INNER JOIN artisti = B
    			ON A.artp = B.idar
    			WHERE  A.idcat like 'rec%' && (A.supp = 'vinyl 12''''' || A.supp = 'double vinyl 12''''' || A.supp = 'vinyl 10''''' || A.supp = 'vinyl 7''''')
    			ORDER by A.datap desc
    			LIMIT 0,$tot";
    $result = mysql_query($query);
    $output = 'tot='.mysql_num_rows($result);
    while($prodotti = mysql_fetch_array($result))
    {
    	$output .='&datap'.$i.'='.$prodotti['datap'];
    	$output .='&supp'.$i.'='.$prodotti['supp'];
    	$output .='&idcat'.$i.'='.$prodotti['idcat'];
    	$output .='&artp'.$i.'='.$prodotti['nomear'];
    	$output .='&przp'.$i.'='.$prodotti['przp'];
    	$output .='&titp'.$i.'='.urlencode($prodotti['titp']);
    	$output .='&sottp'.$i.'='.$prodotti['sottp'];
    	$output .='&recei'.$i.'='.urlencode(substr($prodotti['recei'],0,10000));
    	$output .='&imgcop'.$i.'='.$prodotti['imgcop'];
    	$i++;
    }
    echo $output;

    Cosa devo scrivere nel codice per fare in modo che come output mi venga restituita la data in formato "DD-MM-YYYY"?

    Grazie 1000!
    Protooler

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234
    Ciao Neida!
    Grazie per il link..purtroppo queste indicazioni le avevo già lette ed è proprio per questo che mi riferivo alla mia scarsa conoscenza..
    ho provato a scrivere qualcosa del genere ma ovviamente sbagliavo..
    codice:
    ORDER by (A.datap, '%d-%m-%Y') desc

  4. #4
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Qual'è il problema?? La "pillola" che ti ho indicato è una delle migliori (se non la migliore) che tratta, fra i vari aspetti legati alla gestione di date e tempo in MySQL, l'argomento in maniera molto chiara...

    Che difficoltà hai ad aggiungere alla tua query: ... DATE_FORMAT(campo_data, "%d-%m-%Y") AS data_it ... ? :master:

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234
    nessuna...
    lo faccio ma non funziona..
    Questa è una delle varie prove..

    codice:
    $tot = 1000;	# il numero di prodotti da visualizzare
    $i = 0;		# variabile che servirà da indice (che incrementeremo)
    $query = "SELECT A.artp,A.artp2,A.artp3,A.artp4,A.artp5,A.idpr,A.eticp,A.titp,A.recei,A.datap,A.datac,A.imgcop,A.supp,A.przp,A.idcat,A.sottp,A.divarp1,A.divarp2,A.divarp3,A.divarp4,B.idar,B.nomear
    			FROM prodotti AS A INNER JOIN artisti = B
    			ON A.artp = B.idar
    			WHERE  A.idcat like 'rec%' && (A.supp = 'vinyl 12''''' || A.supp = 'double vinyl 12''''' || A.supp = 'vinyl 10''''' || A.supp = 'vinyl 7''''')
    			ORDER by A.datap desc
    			DATE_FORMAT(A.datap, "%d-%m-%Y") AS data_it
    			LIMIT 0,$tot";
    $result = mysql_query($query);
    $output = 'tot='.mysql_num_rows($result);
    while($prodotti = mysql_fetch_array($result))
    {
    	$output .='&datap'.$i.'='.$prodotti['data_it'];
    	$output .='&supp'.$i.'='.$prodotti['supp'];
    	$output .='&idcat'.$i.'='.$prodotti['idcat'];
    	$output .='&artp'.$i.'='.$prodotti['nomear'];
    	$output .='&przp'.$i.'='.$prodotti['przp'];
    	$output .='&titp'.$i.'='.urlencode($prodotti['titp']);
    	$output .='&sottp'.$i.'='.$prodotti['sottp'];
    	$output .='&recei'.$i.'='.urlencode(substr($prodotti['recei'],0,10000));
    	$output .='&imgcop'.$i.'='.$prodotti['imgcop'];
    	$i++;
    }
    echo $output;

  6. #6
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    La clausola DATE_FORMAT() devi inserirla fra il gruppo dei campi selezionati, NON alla fine della query...

    SELECT A.artp, A.artp2, DATE_FORMAT(A.datap, "%d-%m-%Y") AS data_it, A.artp3 ... FROM ...

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234
    anche così non funziona:

    codice:
    $tot = 1000;	# il numero di prodotti da visualizzare
    $i = 0;		# variabile che servirà da indice (che incrementeremo)
    $query = "SELECT A.artp,A.artp2,A.artp3,A.artp4,A.artp5,A.idpr,A.eticp,A.titp,A.recei,A.datap,A.datac,DATE_FORMAT(A.datap, "%d-%m-%Y") AS data_it,A.imgcop,A.supp,A.przp,A.idcat,A.sottp,A.divarp1,A.divarp2,A.divarp3,A.divarp4,B.idar,B.nomear
    			FROM prodotti AS A INNER JOIN artisti = B
    			ON A.artp = B.idar
    			WHERE  A.idcat like 'trax%' && (A.supp = 'vinyl 12''''' || A.supp = 'double vinyl 12''''' || A.supp = 'vinyl 10''''' || A.supp = 'vinyl 7''''')
    			ORDER by A.datap desc
    			LIMIT 0,$tot";
    $result = mysql_query($query);
    $output = 'tot='.mysql_num_rows($result);
    while($prodotti = mysql_fetch_array($result))
    {
    	$output .='&datap'.$i.'='.$prodotti['data_it'];
    	$output .='&supp'.$i.'='.$prodotti['supp'];
    	$output .='&idcat'.$i.'='.$prodotti['idcat'];
    	$output .='&artp'.$i.'='.$prodotti['nomear'];
    	$output .='&przp'.$i.'='.$prodotti['przp'];
    	$output .='&titp'.$i.'='.urlencode($prodotti['titp']);
    	$output .='&sottp'.$i.'='.$prodotti['sottp'];
    	$output .='&recei'.$i.'='.urlencode(substr($prodotti['recei'],0,10000));
    	$output .='&imgcop'.$i.'='.$prodotti['imgcop'];
    	$i++;
    }
    echo $output;

  8. #8
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    "non funziona" non vuol dire niente.

    metti la segnalazione d'errore quando esegui la query

    $result = mysql_query($query) or die(mysql_error());

    verifica che il campo datap nella tabella prodotti contenga realmente una data valida.

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234
    ti spiego..
    sto leggendo da flash questo php il quale interroga il database e poi mi restituisce come output nei vari campi di testo dinamici alcune informazioni..

    Come qua sotto:
    codice:
    $output .='&datap'.$i.'='.$prodotti['data_it'];
    $output .='&supp'.$i.'='.$prodotti['supp'];
    $output .='&idcat'.$i.'='.$prodotti['idcat'];
    Ora non so se questo può essere un problema..
    Ho inserito la segnalazione di errore nella query ma se lancio il mio php da browser non mi da nessun errore.. pagina bianca!

    Le date all'interno del campo "datap" sono inserite così: 2003-04-22


    codice:
    $tot = 1000;	# il numero di prodotti da visualizzare
    $i = 0;		# variabile che servirà da indice (che incrementeremo)
    $query = "SELECT A.artp,A.artp2,A.artp3,A.artp4,A.artp5,A.idpr,A.eticp,A.titp,A.recei,A.datap,A.datac,DATE_FORMAT(A.datap, "%d-%m-%Y")AS A.data_it,A.imgcop,A.supp,A.przp,A.idcat,A.sottp,A.divarp1,A.divarp2,A.divarp3,A.divarp4,B.idar,B.nomear
    			FROM prodotti AS A INNER JOIN artisti = B
    			ON A.artp = B.idar
    			WHERE  A.idcat like 'trax%' && (A.supp = 'vinyl 12''''' || A.supp = 'double vinyl 12''''' || A.supp = 'vinyl 10''''' || A.supp = 'vinyl 7''''')
    			ORDER by A.datap desc
    			LIMIT 0,$tot";
    $result = mysql_query($query) or die(mysql_error());
    $output = 'tot='.mysql_num_rows($result);
    while($prodotti = mysql_fetch_array($result))
    {
    	$output .='&datap'.$i.'='.$prodotti['data_it'];
    	$output .='&supp'.$i.'='.$prodotti['supp'];
    	$output .='&idcat'.$i.'='.$prodotti['idcat'];
    	$output .='&artp'.$i.'='.$prodotti['nomear'];
    	$output .='&przp'.$i.'='.$prodotti['przp'];
    	$output .='&titp'.$i.'='.urlencode($prodotti['titp']);
    	$output .='&sottp'.$i.'='.$prodotti['sottp'];
    	$output .='&recei'.$i.'='.urlencode(substr($prodotti['recei'],0,10000));
    	$output .='&imgcop'.$i.'='.$prodotti['imgcop'];
    	$i++;
    }
    echo $output;

    il campo "data_it" che associo a "datap" non esiste nel database siusto!?
    Quindi è giusto poi richiamare l'output così?
    $output .='&datap'.$i.'='.$prodotti['data_it'];

  10. #10
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    il campo "data_it" che associo a "datap" non esiste nel database siusto!?
    Quindi è giusto poi richiamare l'output così?
    $output .='&datap'.$i.'='.$prodotti['data_it'];
    Si. Ma purtroppo continuo a non capire dov'è il problema... Cosa ricevi quando mandi in stampa la variabile $output ?

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.