• User Attivo

    Ciao Jeeves ma perchè quando faccio un nuovo commento mi esce prima una data sbagliata...
    e poi il commento giusto? forse ho due funzioni diverse insieme?

    Username: davide
    Commento: 3333333333333333333333
    Data: 01-01-1970, 1:00:00
    Username: davide
    Commento: 3333333333333333333333
    Data: 03-07-2008, 19:35:50
    messaggio inviato da: davide
    COMMENTO: 444444444444444444444444

    questo è il file.php

    <?php
    include "config.php";
    $user=$_POST['username'];
    $commento=$_POST['commento'];
    // Connessione al database
    $comm = mysql_query("SELECT username, commento, data FROM commenti ORDER BY data");
    // Visualizzazione commenti
    while($com = mysql_fetch_assoc($comm)) {
    echo "<p>Username: ".$com['username']."<br>Commento: ".$com['commento']."<br>Data: ".date('d-m-Y, G:i:s', $com['data'])."</p>";
    }
    echo"messaggio inviato da: $user";
    $query = "INSERT INTO commenti (username, commento, data) VALUES ('$user', '$commento', '$data')";
    $esecuzione = mysql_query($query, $db);
    //PER LA DATA, PRIMA RICHIAMO LA FUNZIONE DATE: $data = date("D/F/Y")
    mysql_query("INSERT INTO commenti (username, commento, data) VALUES("".$username."", "".$commento."", "".time()."")");
    ?>
    <p>COMMENTO:
    <?php
    echo"$commento";
    ?>

    nn riesco a capire l'errore :mmm:


  • User Attivo

    Lo sai perché? Perché se vai a vedere nel phpmyadmin il contenuto della tabella, dove vedi 1-1-1970, 1:00:00, alla voce data sta 0?

    Invece lo devi sostituire con i veri secondi passati da quella data, che te li dà time() di php 😉

    Poi, devi eseguire una sola query per inserire i dati nel database, e sta sempre al post 22 😉

    :gthi:


  • User Attivo

    Comunque ti faccio io una bozza dei file:

    scrivicommenti.php

    [php]<?php
    include("config.php");
    $user = $_POST['username'];
    $commento = $_POST['commento'];
    // Connessione al database
    if($user == "" || $commento == "") {
    echo "Non hai compilato tutti i campi";
    } else {
    mysql_query("INSERT INTO commenti (username, commento, data) VALUES("".$username."", "".$commento."", "".time()."")"); // Query di inserimento dati
    }
    [/php]
    Ti consiglio di utilizzare un captcha comunque 😉


    vedicommenti.php

    [php]<?php
    include("config.php");
    $formatodata = "D/F/Y"; // Il formato della data quando la visualizzi

    // Connessione al database
    $comm = mysql_query("SELECT username, commento, data FROM commenti ORDER BY data");
    // Visualizzazione commenti
    while($com = mysql_fetch_assoc($comm)) {
    echo "<p>Username: ".$com['username']."<br>Commento: ".$com['commento']."<br>Data: ".date($formatodata, $com['data'])."</p>";
    }
    ?>[/php]

    Fammi sapere... 🙂

    :gthi:


  • User Attivo

    non riesco a seguirti scusa 😞
    il valore 0 nel database nn so dove andarlo a modoficare cn la data giusta..


  • User Attivo

    Ma aspetta, l'hai trovato? 😄

    Puoi usare mktime() per trasformare una data in secondi passati da quella data, ma con gli annunci non c'entra niente.

    Esempio: che data vuoi inserire? (e io ti do i secondi passati da quella data e ti faccio vedere come ho fatto;))

    :gthi:


  • User Attivo

    Ciao, ho provato in tutti i modi ma nn riesco ancora a risolvere il problema della prima data giusta. Ho provato sia al latyo database e sia al lato codice con i tuoi esempi, ma niente...

    il problema mi rimane sempre lo stesso:
    la prima data è sbagliata 1/1/1970
    e le altre giuste

    e quando aggiorno la pagina si duplica l'ultimo commento, e più aggiorno più si duplica..

    nn so come risolverlo, qualcuno mi può aiutare? per favore. Grazie a tutti


  • User Attivo

    Allora per ricavare i secondi passati da quella data a una che vuoi tu devi usare mktime() e poi lo inserisci dove nel database sta scritto 0.

    Esempio:

    [php]<?php
    // Inserisci i dati che vuoi e ti darà i secondi passati da quella data
    $giorno = "";
    $mese = "";
    $anno = "";
    $ora = "";
    $minuti = "";
    $secondi = "";

    // E qui te li fa vedere
    echo mktime($ora,$minuti,$secondi,$mese,$giorno,$anno);
    ?>[/php]

    Poi inserisci il numero di secondi che ti fa vedere nel database alla voce che a data sta scritto 0.

    :gthi:


  • User Attivo

    spiegati meglio, dici nel database dove sta scritto 0... !?!??? 🙂 è qui che nn capisco. Sicuramente ti riferisci a data. Ma non vedo 0 nelle caselle di data


  • User Attivo

    Hai detto che vedi un commento con quella data, no?

    Ecco, il quel commento nel database al campo data dovresti mettere quello che ti ho scritto al post 47 😉

    Se non hai capito chiedi pure 😉

    :gthi:


  • User Attivo

    Ciao, grazie ancora per la pasienza :):D

    ma come faccio a mettere questo codice php nel database data?

    <?php
    // Inserisci i dati che vuoi e ti darà i secondi passati da quella data
    $giorno = "";
    $mese = "";
    $anno = "";
    $ora = "";
    $minuti = "";
    $secondi = "";

    // E qui te li fa vedere
    echo mktime($ora,$minuti,$secondi,$mese,$giorno,$anno);
    ?>

    Quando accedo all'area admin del mio database clicco su modifica il campo data e mi compaiono campi come: attributi, predefinito, extra e commenti fli altri campi sn già compilati ovviamente tramite l'importazione del file sql come not null ecc..
    Forse esistono altre funzioni nel database che nn conosco? sicuramente.. perchè al lato database nn ho mai fatto niente e nn so muovermi.. dammi una mano dai.. :ciauz:


  • User Attivo

    Dai, non devi mettere il codice php, ma il risultato di quel codice (che è un numero) compilando le variabili 😉

    :gthi:


  • User Attivo

    scusa l'ignoranza ma nn lo sa fare 😞


  • User Attivo

    il risultato del codice php era 1217008807 e l'ho usato come valore in data, ho fatto modifica nel database nella cella data e l'ho messo sia in commento e predefinito e nel vedicommenti .php ho messo il valore mktime ma niente... nn so proprio mettere + le mani credimi :()::o

    aiutatemi :crying:

    :giggle:ciao a tutti


  • User Attivo

    ho capito una cosa però, auto.increment è la funzione che crea un nuovo record. Ho provato a toglierlo a i ID e assegnarlo a tutti gli altri ma nn funzionava mi dava errore. E togliendolo a tutti nn funzionavano i nuovi commenti, si vedeva il nuovo commento quando lo si inseriva e quando aggiornavo nn si duplicava + niente ma quando andavo da una pagina a ll'altra e ritornavo su vedicommenti.php nn c'era + niente.

    Chissà forse x nn duplicare i commenti bisogna modificare il file sql diversamente?

    il post precedente mio sono occupato della data che nn riesco a farla funzionare ancora..

    Ce la stò mettendo tutta ma alla fine rimango sempre deluso... forza incoraggiatemi...


  • User Attivo

    Che hai combinato nel vedicommenti.php? Ripristina quello di prima.

    Per il fatto del commento che dà quella data, se non sai come risolverlo, rimuovi il commento dal database, era solo lì l'errore e non dovrebbero capitarne più 😉 (anche perché quel commento l'hai messo prima che ti ho dato io la soluzione :2:

    :gthi:


  • User Attivo

    ho ripristinato come l'inizio, ma è sempre la solita canzone... sempre lo stesso errore stò su msn


  • User Attivo

    Ma l'errore è che vedi il primo commento con quella data?


  • User Attivo

    si, la prima data è sbagliata. Poi ogni volta che aggiorno la pgina si replicano i post