• Moderatore

    <?PHP
    include ('config.inc.php');
    $DATA1 = date("j/n/Y");
    $sql="SELECT DATAULT FROM USERS WHERE USERNAME='$_SESSION[USERNAME]'";
    $query = mysql_query ($sql, $connessione) or die(mysql_error());
    while ($row=mysql_fetch_array($query)){
    $SC_data=$row["DATAULT"];

    $conronto= ($DATA1 - $SC_data)/(606024);

    if ($confronto >=1 ) {

    echo il tuo cane è brutto;

    else {

    echo porca troia
    ?>

    mi da un errore parse.... potete aiutarmi? grazie è un periodo nero.... ringrazio anche per il procedimento di prima


  • Bannato Super User

    se questo codice è vero nel senso che lo hai usato, mancano un po' di chiusure:

    {
    
    echo il tuo cane è brutto;
    
    else {
    
    echo porca troia
    ?>
    

    dovrebbe essere:

    {
    
    echo "il tuo cane è brutto";
    }
    
    else {
    
    echo "porca troia";
    
    }
    ?>
    

    e poi la variabile che definisci è $conronto, non $confronto 😉

    mi sa che hai bisogno di svagarti un po' 😄


  • Moderatore

    si ma mi da un errore parse nella procedura sql ed ora colgo anche l'occasione per scusarmi dei termini utilizzati....

    sono davanti al pc da 32 ore ormai.....senza fermarmi un attimo

    mi potete controllare tutta la procedura?


  • Bannato Super User

    Questo il tuo codice della query:

    
    $sql="SELECT DATAULT FROM USERS WHERE USERNAME='$_SESSION[USERNAME]'";
    $query = mysql_query ($sql, $connessione) or die(mysql_error());
    
    

    intanto potresti provare staccando l'apice singolo di chiusura della variabile dai doppi apici di chiusura

    poi prova a fare separatamente le query $sql e $connessione così vediamo dove sta l'errore.


  • User Attivo

    Prova così:

    $sql="SELECT DATAULT FROM USERS WHERE USERNAME='" . $_SESSION['USERNAME'] . "'";


  • Moderatore

    proseguendo e trovato l'errore eccovene un'altro

    [PHP]<?PHP
    session_start();
    include "config.inc.php";
    $DATA1 = date("j/n/Y");
    $DATA10 = mktime($DATA1);

    $sql="SELECT UltimaEsp FROM USERS WHERE USERNAME='$_SESSION[USERNAME]'";
    $query = mysql_query ($sql, $connessione) or die(mysql_error());
    while ($row=mysql_fetch_array($query)){
    $SC_data=$row["UltimaEsp"];

    $DATA0 = mktime($SC_data);

    echo "$DATA1 espressa normalmente<br>";
    echo "$DATA10 in secondi<br>";
    echo"$DATA0 in secondi<br>";

    $confronto= ($DATA10 - $DATA0)/('86400');

    echo "$confronto";

    if ($confronto >='0.04' ) {

    echo "aggiornami";
    }
    else {

    echo "non devi essere aggiornato";
    }

    }
    @mysql_close ($connessione);
    ?> [/PHP]

    ragazzi è una cosa complicatuccia in pratica l'mktime non mi tiene conto ne dei mesi e ne degli anni;

    mi spiego meglio.... sul database ho una data stampata così 21/7/2005 ok?
    ora la porto a confronto passandola tramite mktime e nulla assolutamente nulla anzi dice che le due date sono uguali cosa impossibile dato che una è //2006 e l'altra //2005 aiutatemi


  • Bannato Super User

    ragazzi è una cosa complicatuccia in pratica l'mktime non mi tiene conto ne dei mesi e ne degli anni;

    mi spiego meglio.... sul database ho una data stampata così 21/7/2005 ok?
    ora la porto a confronto passandola tramite mktime e nulla assolutamente nulla anzi dice che le due date sono uguali cosa impossibile dato che una è //2006 e l'altra //2005 aiutatemi

    Il formato della data nel DB com'è ?

    la data per essere riconosciuta correttamente deve essere in un campo DATE, ed è formattata in modo specifico.

    Se l'hai inserita in un campo varchar o text non ti viene riconosciuta come una data.


  • Moderatore

    quindi dovrei metterla in un campo date e formattarla nel modo che ho formattato la data che leggo con lo script?

    [php]
    <?PHP
    session_start();
    include "config.inc.php";
    $DATA1 = date("Y-m-j");
    $DATA10 = mktime($DATA1);

    $sql="SELECT UltimaEsp FROM USERS WHERE USERNAME='$_SESSION[USERNAME]'";
    $query = mysql_query ($sql, $connessione) or die(mysql_error());
    while ($row=mysql_fetch_array($query)){
    $SC_data=$row["UltimaEsp"];
    $DATA11 = mktime($SC_data);

    echo "$DATA1<br>";
    echo "$SC_data<br>";
    echo "$DATA10<br>";
    echo "$DATA11<br>";
    $confronto= ($DATA10 - $DATA11)/('86400');

    echo "$confronto";

    if ($confronto >='1' ) {

    echo "aggiornami";
    }
    else {

    echo "no aggiorna";
    }

    }
    @mysql_close ($connessione);
    ?> [/PHP]

    ora ho modificato ma ecco il nuovo problema i due mktime con date diverse una che sarebbe quella corrente ed una impostata nel db diversa 2006-07-29 mi da gli stessi valori..... come è possibile? uff...


  • Moderatore

    ora vi ringrazio e vi spiego come ho risolto pe tutti coloro che vorrebbero riuscirci^_^

    [php]<?
    session_start();
    include "config.inc.php";
    function Tempo($tim) {
    return(strftime("%d/%m/%Y %H:%M", strtotime($tim)));
    }
    ?>

    <html>
    <head>
    <link rel="stylesheet" href="stile.css" type="text/css">
    </head>
    <?
    $MySql = "SELECT UltimaEsp FROM USERS WHERE USERNAME='$_SESSION[USERNAME]'";
    $Result = mysql_query($MySql);
    $rs = mysql_fetch_array($Result);
    $UltimaEsp = $rs["UltimaEsp"];
    $rs->close;
    #echo strftime("%Y-%m-%d")."==".$UltimaEsp."<hr>";
    if (strftime("%Y-%m-%d")!=$UltimaEsp) {

    $MySql = "UPDATE USERS SET UltimaEsp = '".strftime("%Y-%m-%d 00:00:00")."' WHERE USERNAME='$_SESSION[USERNAME]'";
    $Result = mysql_query($MySql);

    echo "hai aggiornato la data^_^";
    

    }

    ?>
    <?

    			@mysql_close ($connessione);
    			?>[/php]
    

    grazie a tutti


  • Bannato Super User

    Grazie a te massimux per aver postato la soluzione funzionante 🙂