Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Problema DATEADD

  1. #1

    Problema DATEADD

    Salve ragazzi, il mio problema è questo: Vorrei che se UltimoRefresh dopo 5 secondi ( ho messo 5 perchè è per una prova ma poi metterò 15 ) è minore dell'ora attuale parte il set dell' Ora uscita. E' una piccola funzione per il log-out. Ecco il codice.


    $MySql = "UPDATE Presenti SET UltimoRefresh = NOW() WHERE Nome = '".$Nome."'";
    mysql_query($MySql);

    $MySqlPresenti = " UPDATE Presenti";
    $MySqlPresenti .= " SET OraUscita = NOW()";
    $MySqlPresenti .= " WHERE ADDDATE('UltimoRefresh', INTERVAL 5 SECOND) < NOW()";
    mysql_query($MySqlPresenti);

    Purtroppo però non và, dove sbaglio? O.o
    ♦ Io sono un lupo...niente e nessuno lo
    può negare perchè io so quale animale
    vive dentro di me ♦

  2. #2
    perche' usi apici per il nome campo e quindi questo diventa una stringa.

    codice:
    UPDATE Presenti
    SET OraUscita = NOW()
    WHERE UltimoRefresh + INTERVAL 5 SECOND < NOW()

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    $MySql = "UPDATE Presenti SET UltimoRefresh = NOW() WHERE Nome = '".$Nome."'";
    mysql_query($MySql);

    $MySqlPresenti = " UPDATE Presenti";
    $MySqlPresenti .= " SET OraUscita = NOW()";
    $MySqlPresenti .= " WHERE DATE_ADD(UltimoRefresh, INTERVAL 5 SECONDS < NOW()";
    mysql_query($MySqlPresenti);

    Nemmeno così funziona, il poblema è che non mi aggiorna il campo OraUscita uff...!

    Se vi può servire, OraUscita nel database è settato su DATETIME.
    ♦ Io sono un lupo...niente e nessuno lo
    può negare perchè io so quale animale
    vive dentro di me ♦

  4. #4
    Manca una parentesi, in ipotesi che la funzione sql sia corretta
    $MySqlPresenti .= " WHERE DATE_ADD(UltimoRefresh, INTERVAL 5 SECONDS < NOW()";
    deve diventare
    $MySqlPresenti .= " WHERE DATE_ADD(UltimoRefresh, INTERVAL 5 SECONDS) < NOW()";


  5. #5
    Diamine ma perchè cavolo non và? T_T ragazzi solo voi potete aiutarmi ç_ç riposto il codice.

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="Stili.css">
    <title>Wolf Legend Site</title>
    
    <?php
    
    session_start(); // Avvio una sessione
    include ("Data/parametri.php"); // Includo i parametri del database per la connessione.
    
    $Login=$_SESSION['Login']; // Dico che la variabile Login corrisponde all'utente della sessione attuale.
    
    $MySql = "SELECT * FROM Utenti";  // Carico tutte le tabelle corrispondenti alla voce Utenti
    $MySql .= " WHERE Nome = '".addslashes($_SESSION['Login'])."'";  // Specifico di quale utente voglio sapere le informazioni!
    
    $Result = mysql_query($MySql);
    $rs = mysql_fetch_array($Result);
    
    $Nome = $Login;
    $Email = $rs['Email'];
    $Sesso = $rs['Sesso'];
    $RazzaUtente = $rs['IDRazza'];
    $ClasseUtente = $rs['IDClasse'];
    $Master = $rs['Master'];
    $HP = $rs['HP'];
    $MP = $rs['MP'];
    $PX = $rs['PX'];
    $Forza = $rs['Forza'];
    $Destrezza = $rs['Destrezza'];
    $Volonta = $rs['Volonta'];
    $Magia = $rs['Magia'];
    $Astuzia = $rs['Astuzia'];
    $Costituzione = $rs['Costituzione'];
    $ID = $rs['ID'];
    $IP = $_SERVER['REMOTE_ADDR'];
    
    
    		$MySql = "UPDATE Presenti SET UltimoRefresh = NOW() WHERE Nome = '".$Nome."'";
    		mysql_query($MySql);
    
    	    $MySqlPresenti =  " UPDATE Presenti";
    		$MySqlPresenti .= " SET OraUscita = NOW()";
    		$MySqlPresenti .= " WHERE DATE_ADD(UltimoRefresh, INTERVAL 5 SECONDS) < NOW()";
    		mysql_query($MySqlPresenti);
    	
    		
    ?>
    
    
    </head>
    <frameset rows="80,*" cols="*" frameborder="no" border="0" framespacing="0">
      <frame SRC="MenuUP.php" NAME="Menu" scrolling="No" noresize="noresize" id="topFrame" title="topFrame" />
      <frameset rows="*" cols="280,*,280" framespacing="0" frameborder="no" border="0">
        <frame SRC="Menu.php" NAME="Menu">
        <frame SRC="Mappa_Principale.php" NAME="Mappa" id="mainFrame" title="mainFrame" />
        <frame name="Menu" src="Menu.php" scrolling="No" noresize="noresize" id="rightFrame" title="rightFrame" />
      </frameset>
    </frameset>
    <noframes><body>
    </body></noframes>
    </html>
    Non mi aggiorna l'OraUscita!

    Questo è intero ç_ç
    ♦ Io sono un lupo...niente e nessuno lo
    può negare perchè io so quale animale
    vive dentro di me ♦

  6. #6
    Mi metti un dump di qualche riga delle tabelle interessate, compresa la struttura per favore?

  7. #7
    codice:
    --
    -- Struttura della tabella `Presenti`
    --
    
    CREATE TABLE IF NOT EXISTS `Presenti` (
      `Nome` varchar(20) NOT NULL DEFAULT '',
      `Mappa` int(11) NOT NULL,
      `OraEntrata` datetime DEFAULT NULL,
      `OraUscita` datetime DEFAULT NULL,
      `UltimoRefresh` datetime DEFAULT NULL,
      `Stato` varchar(10) NOT NULL,
      `IDRazza` int(11) DEFAULT '0',
      `IDClasse` int(11) DEFAULT '0',
      `Master` tinyint(1) DEFAULT '0',
      `Sesso` varchar(10) NOT NULL,
      `IP` varchar(15) NOT NULL,
      PRIMARY KEY (`Nome`),
      KEY `OraEntrata` (`OraEntrata`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    
    --
    -- Dump dei dati per la tabella `Presenti`
    --
    
    INSERT INTO `Presenti` (`Nome`, `Mappa`, `OraEntrata`, `OraUscita`, `UltimoRefresh`, `Stato`, `IDRazza`, `IDClasse`, `Master`, `Sesso`, `IP`) VALUES
    ('Alias', 1, '2011-05-22 12:31:14', '2037-12-31 00:00:00', '2011-05-22 13:07:58', 'Attivo', 1, 2, 1, 'M', '62.98.15.62');
    Ecco a te.
    ♦ Io sono un lupo...niente e nessuno lo
    può negare perchè io so quale animale
    vive dentro di me ♦

  8. #8
    ok...
    SECOND, non seconds...niente S alla fine


  9. #9
    Nulla non và, mi aggiorna solo Ultimorefresh T_T
    ♦ Io sono un lupo...niente e nessuno lo
    può negare perchè io so quale animale
    vive dentro di me ♦

  10. #10
    Beh se hai solo una riga nel db è ovvio...
    guarda bene cosa fai...

    prima aggiorni a "adesso" il valore di ultimorefresh dell'utente...e subito dopo dici "metti a adesso la data di uscita agli utenti che hanno la data di refresh superiore a 5 secondi fa"...ma se hai un solo utente questa data di refresh NON potrà essere superiore a 5 secondi fa..

    Se vuoi fare una prova "empirica"
    Codice PHP:

    $MySql 
    "UPDATE Presenti SET UltimoRefresh = NOW() WHERE Nome = '".$Nome."'";
            
    mysql_query($MySql);

            
    $MySqlPresenti =  " UPDATE Presenti";
            
    $MySqlPresenti .= " SET OraUscita = NOW()";
            
    $MySqlPresenti .= " WHERE DATE_ADD(UltimoRefresh, INTERVAL 5 SECOND) < NOW()";

            
    sleep(6); // !!!!! Attendo 6 secondi, la query dovrebbe aggiornare anche l'unico utente del db

            
    mysql_query($MySqlPresenti); 

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 © 2024 vBulletin Solutions, Inc. All rights reserved.