Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    Problema memorizzazione data in tabella database

    Codice PHP:
    $t "post"# nome della tabella
    $v = array ($titolo,$testo,$autore,date("Y-m-d")); # valori da inserire
    $r "titolo_post,testo_post,autore_post,data_post"# campi da popolare 
    Salve a tutti, seguo questo splendido sito da molto tempo ma per fortuna non ho mai avuto bisogno di posta ma questa volta per comprendere ho bisogno del vostro aiuto!

    Sto cercando di impare ad usare il php e ho seguito la guida sul sito "PHP MySQL guida pratica dove spiegano il codice per costruire un blog e che ho utilizzato e applicato riuscendo dopo un po di prove a farlo funzionare (considerate che parto proprio da zero con PHP e MySQL mentre sono un po più ferrato su html css).
    Ora però ho un problema...sto adattando un po il codice trovato perche ho bisogno di inserirlo nel sito di fotografia che sto creando. Avrei bisogno di usare quel codice per creare la sezione dedicata agli articoli con la possibilità di commenti e ora veniamo al problema vorrei modificare la funzione che inserisce la data nella tabella relativa ai post che come potete vedere riporta solo la data e non l'ora...e io avrei bisogno anche dell'ora! Ho provato a cambiare "Y-m-d" in questo modo "d M y - H:i:s" usando una tabella che ho trovato in rete che indicava il significato di quelle lettere e cambiando il valore della tabella nel database mysql da DATE a DATETIME ma non ha funzionato!
    Dove sbaglio?

    Scusate se mi sono dilungato e scusate se l'argomento è gia stato trattato ma cercando qua sul forum non sono riuscito a capire come fare...
    Saluti

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    puoi provare con "Y-m-d h:i:s" sempre cambiando il tipo del campo come dici... ma bisogna vedere dove viene generata/eseguita la query (non si vede nel pezzo di codice che posti)

  3. #3
    Ciao intanto grazie mille per la risposta!! Sinceramente pensavo di aver provato quella combinazione ma ho cmq riprovato ad usarla dato il consiglio e ha funzionato!!
    Ora ne vorrei approfittare per chiedere un'ulteriore informazione, mi ha registrato correttamente data e ora e me li riporta in questo modo "Scritto il 03:41:03 2012-02-11 " ora vorrei sapere se fosse possibile registrare nella tabella del database i dati dell'ora in modo che l'ordine cronologico dei post risulti corretto al secondo ma vorrei che sul sito mi mostrasse solo ore e minuti se è possibile...cosa che mi interesserebbe ancora di più sarebbe visualizzare la data nel formato gg mm aaaa e non al contrario come viene ora e con il nome del mese invece del numero!
    Insomma mi interesserebbe avere un risultato del genere "Scritto il 11 Febbraio 2012 alle 3:41"

    Infine mi scuso per aver postato solo una parte di codice ma sono alle prime armi e faccio ancora un po fatica a capire cosa serve e cosa no...provo a postare un'altra parte di codice che potrebbe essere quella che mi hai richiesto.

    Codice PHP:
    // funzione per la formattazione della data
    public function format_data($d) {
    $vet explode(" "$d);
    $df $vet[2]." ".$vet[1]." ".$vet[0];
    return 
    $df

    se mi aiutate a capire posto tutto quello che serve...spero di non abusare della vostra disponibilità

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    la funzione che posti prende la "data", la spezza dove ci sono gli spazi e poi mette nell'ordine il pezzo n.2, uno spazio, il n.1, uno spazio e infine il n.0, quindi penso da "11 02 2012" ottieni "2012 02 11", ma non so quando viene richiamata...

    Per rispondere bene bisognerebbe vedere il punto in cui viene inserito il valore che vuoi modificare, per capire che variabile utilizza e da dove la prende.

  5. #5
    scusami faccio fatica capire quale sia la parte di codice che vuoi allora ti posto tutto scusami se non riesco ad essere più preciso ma forse cosi riesci ad aiutarmi meglio...
    codice:
    <article id="home">
    <h2>Ultimi Articoli</h2>
    
    
    Codice PHP:
    <?php // inclusione del file di classe include "funzioni_mysql.php"; // istanza della classe $data = new MysqlClass(); // chiamata alla funzione di connessione $data->connetti(); // query per l'estrazione dei record $post_sql $data->query("SELECT * FROM post ORDER BY data_post DESC LIMIT 3"); // controllo sul numero di record presenti in tabella if(mysql_num_rows($post_sql) > 0){   // estrazione dei record tramite ciclo   while($post_obj $data->estrai($post_sql)){     $id_post $post_obj->id_post;     $titolo_post stripslashes($post_obj->titolo_post);     $testo_post stripslashes($post_obj->testo_post);     $autore_post stripslashes($post_obj->autore_post);     $data_post $post_obj->data_post;             // visualizzazione dei dati     echo "<h3><a href=\"post.php?id_post=$id_post\">".$titolo_post."</a></h3>\n";     echo  "Autore [b]"$autore_post "[/b]\n";     echo  "\n";     echo  "Pubblicato il [b]" $data->format_data($data_post) . "[/b]\n";     echo  "\n";     // link al testo completo del post     $leggi_tutto "<a href=\"post.php?id_post=$id_post\">Leggi tutto...</a>\n";     // anteprima del testo     echo "".$data->preview($testo_post5$leggi_tutto)."</p>\n";     // parte relativa al conteggio dei commenti     echo "<a href=\"post.php?id_post=$id_post\">Commenti: </a>" $data->conta_commenti("id_commento""commenti""id_post"$id_post"approvato",'1');     echo " &bull; <a href=\"commenti.php?id_post=$id_post\">Inserisci un commento</a>\n";     echo "<hr>\n";   }  }else{   // notifica in assenza di record   echo "Per il momento non sono disponibili post."; } // chiusura della connessione a MySQL $data->disconnetti(); ?>
    </article>
    questa e la pagina che visualizza i post questa e la pagina php che richiama le funzioni invece

    Codice PHP:
    <?php
    class MysqlClass
    {
        
    // variabili per la connessione al database
        
    private $nomehost "localhost";     
        private 
    $nomeuser "xxxxx";          
        private 
    $password "xxxxxxx";
        private 
    $nomedb "xxxxxx";


        
    // controllo sulle connessioni attive
        
    private $attiva false;

        
    // funzione per la connessione a MySQL
        
    public function connetti()
        {
            if(!
    $this->attiva)
            {
             if(
    $connessione mysql_connect($this->nomehost,$this->nomeuser,$this->password) or die (mysql_error()))
             {
             
    $selezione mysql_select_db($this->nomedb,$connessione) or die (mysql_error());
             }
            }else{
             return 
    true;
            }
        }

    //funzione per l'esecuzione delle query 
    public function query($sql)
     {
      if(isset(
    $this->attiva))
      {
      
    $sql mysql_query($sql) or die (mysql_error());
      return 
    $sql
      }else{
      return 
    false
      }
     }
     
    //funzione per l'inserimento dei dati in tabella
        
    public function inserisci($t,$v,$r null)
        {
             if(isset(
    $this->attiva))
              {
                
    $istruzione 'INSERT INTO '.$t;
                if(
    $r != null)
                {
                    
    $istruzione .= ' ('.$r.')';
                }

                for(
    $i 0$i count($v); $i++)
                {
                    if(
    is_string($v[$i]))
                        
    $v[$i] = '"'.$v[$i].'"';
                }
                
    $v implode(',',$v);
                
    $istruzione .= ' VALUES ('.$v.')';

                
    $query mysql_query($istruzione) or die (mysql_error());

                }else{
                    return 
    false;
                }
            }
    //funzione per l'estrazione dei record 
    public function estrai($risultato)
     {
      if(isset(
    $this->attiva))
      {
      
    $r mysql_fetch_object($risultato);
      return 
    $r;
      }else{
      return 
    false
      }
     }
    // funzione per la formattazione della data
    public function format_data($d)
    {
      
    $vet explode(" "$d); 
      
    $df $vet[2]." ".$vet[1]." ".$vet[0]; 
      return 
    $df
    }
     
    // funzione per l'anteprima degli articoli
    public function preview($post$offset$collegamento) {
     return (
    count($anteprima explode(" "$post)) > $offset) ? implode(" "array_slice($anteprima0$offset)) . $collegamento $post;
    }

    // funzione per il conteggio dei commenti
    public function conta_commenti($id_c$tbl$campo$id_post,$enum$valore_enum)
     {
      if(isset(
    $this->attiva))
      {
      
    $query_n_com mysql_query("SELECT COUNT($id_c) AS n_commenti from $tbl WHERE $campo = $id_post AND $enum = '$valore_enum'") or die (mysql_error());
      
    $obj_n_com mysql_fetch_object($query_n_com) or die (mysql_error());
      return 
    $obj_n_com->n_commenti;
      }else{
      return 
    false
      }
     }

    // funzione per la chiusura della connessione
    public function disconnetti()
    {
        if(
    $this->attiva)
        {
            if(
    mysql_close())
            {
             
    $this->attiva false
             return 
    true
            }else{
                return 
    false
            }
        }
     }
        
    }
    ?>

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    sì, sembra quella funzione... cambiala così:

    Codice PHP:
    public function format_data($d

    var_export($d);exit; // stampa di prova
      
    $vet explode(" "$d);  
      
    $df $vet[2]." ".$vet[1]." ".$vet[0];  
      return 
    $df;  

    questo stampa a video $d per vedere il formato di lettura, posta qui il risultato. Poi si può adattare la funzione per fare come preferisci

  7. #7
    grazie mille per la tua disponibilità ho fatto come hai detto ho sostituito quella esistente pero crea qualche problema perche blocca tutto il resto della pagina e non lo carica subito dopo l'ora! viene fuori questo '2012-02-11 03:59:39' e si blocca...puoi vedere qua http://lucafasolis.altervista.org/articoli.php

    cosa puo essere?

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    è "exit" che blocca... te l'ho fatto mettere apposta...

    ...dovresti fare:

    Codice PHP:
    public function format_data($d)  
    {
      
    // $d = '2012-02-11 03:59:39';
      
    list($data$ora) = explode(" "$d);
      list(
    $anno$mese$giorno) = explode("-"$data);
      
    $mn = array(=> 'Gennaio''Febbraio', ...); // COMPLETA!!
      
    $testo $giorno.' '.$mn[$mese].' '.$anno;
      return 
    $testo;

    ...prova! L'ho scritta al volo...

  9. #9
    stai diventando il mio idolo! aahahaha....
    cmq funziona in parte...stampa solo mese in numero e anno e basta...
    Pubblicato il 11 2012

    non ci capisco proprio una mazza di php

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    mmh... cambia $mn[$mese] con $mn[intval($mese)]...

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.