Problema stergere din database dupa coloana cu data

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
LCristian
Mesaje:12

Problema stergere din database dupa coloana cu data

Culmea, pana acum ceva timp mergea bine.

Cod: Selectaţi tot

$current_time = date("H:i:s");

Cod: Selectaţi tot

$vote_register = mysql_query("INSERT INTO vote (username,ip,time) VALUES ('$_POST[username]','$_SERVER[REMOTE_ADDR]','$current_time')");

Cod: Selectaţi tot

//DELETE FROM DATABASE EVERY 7 HOURS
$today = date("H:i:s", strtotime("-7 hours"));
mysql_query("DELETE FROM vote WHERE time <= '$today'");
Table struct:

Cod: Selectaţi tot

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `uberdb`
--

-- --------------------------------------------------------

--
-- Table structure for table `vote`
--

CREATE TABLE IF NOT EXISTS `vote` (
  `username` text NOT NULL,
  `ip` text NOT NULL,
  `time` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `vote`
--


/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Inregistreaza in database username, ip, time(h:i:s)

cand dau refresh la pagina,

Cod: Selectaţi tot

$vote_ip_check = mysql_query("SELECT * FROM vote WHERE ip='$_SERVER[REMOTE_ADDR]'"); //check vote ip

Cod: Selectaţi tot

if (isset($_POST['submit']) == false)    {
    if (mysql_num_rows($vote_ip_check) == '1')    {
    echo "<div class='ferror red'>You've already voted. The vote - reward system will re-appear automatically 7 hours after you previously voted.</div>";
    }
Apare mesajul. Dar daca mai dau un refresh se sterge din database recordul respectiv.
Daca e nevoie postez mai mai mult din cod. Am considerat ca ar fi mai ok sa nu "incarc" atat de mult postul cu lucruri nu atat de importante problemei. :)

MarPlo Mesaje:4343
Salut
In tabelul MySQL "vote", coloana "time" e de tip text. Nu poti efectua operatii matematice, cum e '<=' pe text. Ar trebui coloana de tip INT(), si sa inregistrezi in ea numarul Timestamp.
Insert:

Cod: Selectaţi tot

$vote_register = mysql_query("INSERT INTO vote (username,ip,time) VALUES ('".$_POST['username']."','".$_SERVER[REMOTE_ADDR]."',".time().")");
 
Delete:

Cod: Selectaţi tot

mysql_query("DELETE FROM vote WHERE time <= ".(time() - 25200));
 

Subiecte similare