|
|
|
|
|
для: Trianon
(12.05.2006 в 15:40)
| | СПАСИБО!!!! вот теперь я понял ;)
спасибочки | |
|
|
|
|
|
|
|
для: virtus
(12.05.2006 в 14:50)
| | В Вашем примере нет записей, отличающихся датами хотя бы на неделю.
После изменения значений в поле date на 1146568913 и 1146568913 следующий скрипт
<form action="" method=post>
<select name="srok">
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
</select>
<input type=submit value="Óäàëèòü">
</form>
<?
include 'config.inc.php';
$mess = 'board_mess';
if (isset($_POST['srok'])) {
$date = $_POST['srok'] * 7;
$deldat = "delete FROM $mess WHERE FROM_UNIXTIME(date) < now() - INTERVAL $date DAY";
mysql_query($deldat);
}
?>
|
при запуске и выборе 2-х недельного срока удалил строго одну из записей. | |
|
|
|
|
|
|
|
для: Trianon
(12.05.2006 в 14:14)
| |
CREATE TABLE board_mess (
idprod int(11) NOT NULL auto_increment,
idcat int(11) NOT NULL default '0',
'date' int(11) default NULL,
'name' varchar(255) NOT NULL default '',
description text NOT NULL,
kuda tinytext NOT NULL,
price tinytext NOT NULL,
city varchar(50) NOT NULL default '',
raion_k varchar(255) NOT NULL,
raion varchar(100) NOT NULL default '',
street varchar(100) NOT NULL default '',
ga varchar(100) NOT NULL default '',
comun tinytext NOT NULL,
who tinytext NOT NULL,
torg tinytext NOT NULL,
fio varchar(255) default NULL,
phone varchar(100) NOT NULL default '',
picture varchar(50) NOT NULL default '',
picture1 varchar(50) NOT NULL default '',
picture2 varchar(50) NOT NULL default '',
PRIMARY KEY (idprod)
) ENGINE=MyISAM;
INSERT INTO rus_board_mess VALUES (38, 2, 1147419929, 'егекнку', 'кнкун', '2', 'некунекунн', '', '0', '', '', '', '1', '1', '1', 'екункун', '11111111111111111111', '', '', '');
INSERT INTO rus_board_mess VALUES (35, 2, 1147419255, '!!!!', '', '2', '232323', '', '0', '', '', '', '1', '1', '1', '23232', '232323', '', '', '');
|
| |
|
|
|
|
|
|
|
для: virtus
(12.05.2006 в 14:07)
| | Всё должно идти. Если не идет - значит в таблице чехарда.
Приведите фрагмент дампа таблицы. | |
|
|
|
|
|
|
|
для: virtus
(11.05.2006 в 19:01)
| | Я так понял никто не знает как запрос поставить...
Может кто поможет другим путем? | |
|
|
|
|
|
|
|
для: Trianon
(11.05.2006 в 18:31)
| | так же не верно!!!
в данной ситуации DATE будет все время меньшей, нужно отнимать и от DATE
только как? | |
|
|
|
|
|
|
|
для: virtus
(11.05.2006 в 18:15)
| |
<?php
...
$date = $date * 24 * 3600;
$deldat = "DELETE FROM $mess. WHERE date > ". (time() - $date);
}
...
?>
|
никакая дополнительная защита от инъекций тут не нужна. Разве чтоб самому не забыть. Всё равно попытка умножить входной операнд на 24 придушит любую инъекцию нафиг. | |
|
|
|
|
|
|
|
для: DDK
(11.05.2006 в 17:53)
| | не верное что-то!!!
вот вывел deldat
DELETE FROM board_mess WHERE 1147356803-date>1146147203 | |
|
|
|
|
|
|
|
для: DDK
(11.05.2006 в 17:50)
| | А ! Вот маленький, но важный момент упустил... нужно немного изменить запрос:
<?php
...
if ($_POST[pict] == "delo") {
$date = (int) $date; // Защищаемся от SQL-инъекции
$date = $date * 24 * 3600;
$deldat = "DELETE FROM ".$mess." WHERE ".time()."-date>".$date;
}
...
?>
|
Вот, вроде бы так... | |
|
|
|
|
|
|
|
для: virtus
(11.05.2006 в 17:27)
| | Скрипт получает из формы число недель... нам нужно перевести число недель в секунды. Умножаем кол-во недель на кол-во часов в сутках и затем на кол-во секунд в часе (60*60=3600). Получаем кол-во секунд в заданном числе недель. | |
|
|
|
|