Удаление из строи из базы

levi-de

Новичок
Удаление из строи из базы

Пацаны, вопрос такой:

Короче, у меня в базе данных есть поле termin, в которое я заношу дату регистрации пользователя (+ 6 недель) вместе с остальными данными о нём (напр. Логин, пароль, и.т.д.).

Логин | пароль | termin
Stas | 12345 | 2004.07.15
Andrey | 54321 | 2004.08.03

Задача – не дать ни одному пользователю болтаться в базе болше 6 недель.

Я сравниваю поле termin с сегодняшней датой.


$dat = date("Y.m.d");
$result = mysql_query( "SELECT termin FROM users where termin <= '$dat'" );
$num_rows = mysql_num_rows( $result );
while ( $a_row = mysql_fetch_row( $result ) )
{
foreach ( $a_row as $termin )
{

$sql="delete * from users where termin <= '$termin";
mysql_query($sql);

}
}


Вот такая вот проблемка. Удалять строки, где дата термина равна или меньше чем сегодняшняя - не желает.
Помогите, please, найти ошибку.
 

Найч

Алгоритмик :-)
Че грит? :)

-~{}~ 09.06.04 21:57:

$sql="delete * from users where termin <= '$termin";
Кстати, с кавычками - это очепятка?

-~{}~ 09.06.04 21:59:

Мда... Посмотрел на код. У тебя не было мыслей сделать удаление одним запросом, а не делать цикл с запросами?
 

Фанат

oncle terrible
Команда форума
levi-de
а кто тебя научил хранить дату в базе в таком кривом формате?
или ты сам додумался?

а по поводу удаления.
ты вообще, хоть одну книжку по базам данных читал?
или читать некогда - надо деньги зарабатывать?

-~{}~ 09.06.04 23:09:

Найч
у него круче.
у него, теоретически, должна первая же итерация все удалить :)
то есть, он не понимает логики собственного скрипта - а это, как всегда, самое печальное
 

levi-de

Новичок
Хорошо, товарищи, давайте разберёмся. Значит, прямо сказать, с логикой в этом месте у меня действительно подкачал.

Теперь, вы говорите, что кривой формат даты.
Согласен. Только если по нормальному написать, то тогда получится что напр 10.01.2004 больше, чем 9.01.2008 . Наверняка, есть какая то функция (или как лучше выразится), что бы программа понимала дату не как цифру, а именно как ДАТУ и сравнивала начиная не с первой цифры.

Ну вот так вроде по логике правильно. Только вот с синтаксисом беда

$dat = date("Y.m.d");
mysql_query=(delete * from users where termin <= $dat);
 

Фанат

oncle terrible
Команда форума
Сверху