PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 8
ipv2007 Отправлено: 10 Июля, 2014 - 12:55:12 • Тема: Как удалить запись из БД по истечению срока • Форум: Работа с СУБД

Ответов: 19
Просмотров: 4314
Мелкий пишет:
Если нет прав либо базы на разных машинах, то придётся джойнить на приложении:

Нет, все находится на одной машине. Давайте сделаем проще, кину картинку в которой напиши структуру своей БД с реальными названиями, а то каша какая-то получается:
ipv2007 Отправлено: 10 Июля, 2014 - 12:33:17 • Тема: Как удалить запись из БД по истечению срока • Форум: Работа с СУБД

Ответов: 19
Просмотров: 4314
Contr пишет:
скобки только расставьте

Расставил. Потом добавил вот такую строчку, что посоветовали выше в теме
PHP:
скопировать код в буфер обмена
  1.  
  2. DELETE FROM `tablename`, `anothertable` USING `tablename` JOIN `anothertable` ON `поле одной таблицы`=`поле другой табличц` WHERE `expire_date`<NOW()
  3.  


Не робит.

P.S. Что-то я уже запутываться начинаю... надо переварить... )))
ipv2007 Отправлено: 10 Июля, 2014 - 12:22:03 • Тема: Как удалить запись из БД по истечению срока • Форум: Работа с СУБД

Ответов: 19
Просмотров: 4314
Contr пишет:
А вы не путаете термин "БД" и термин "таблица" часом?

Нет, не путаю. БД - База Данных, Таблица - внутри БД
Я же на картинке нарисовал свою ситуацию.
Имею две Базы данных.
имя БД1 - one
в ней таблица tableOne
в БД1 записана строчка с указанием даты

имя БД2 - two
в ней таблица tableTwo
в БД2 записана строчка без указания даты

НО! в этих в этих строчках есть столбец, которые содержит одинаковые ники пользователей

Надеюсь понятно теперь? )
ipv2007 Отправлено: 10 Июля, 2014 - 12:16:48 • Тема: Как удалить запись из БД по истечению срока • Форум: Работа с СУБД

Ответов: 19
Просмотров: 4314
Contr пишет:
ipv2007 пишет:
Сижу и думаю, как подключиться сразу к двум БД

$this->pdo1->query()//запрос к 1й БД
$this->pdo2->query()//запрос к 2 БД

Не очень врубился, я приведу ниже свой скрипт:

Файл config.php
PHP:
скопировать код в буфер обмена
  1.  
  2. $configuration = array (
  3.         'database' => array (
  4.                 'host' => 'localhost',
  5.                 'user' => 'имя',
  6.                 'pass' => 'пароль',
  7.                 'base' => 'имяБД1'     
  8.  


далее в другом файле php, назовем его delete.php
идет подключение к БД указанной к config.php
PHP:
скопировать код в буфер обмена
  1.  
  2. class database extends system
  3. {
  4.         public function __construct($connect)
  5.         {
  6.                 include BASE_URL . "config.php";
  7.                 $this->pdo = $connect; $this->config = $configuration;
  8.                 $this->pdo->query("DELETE FROM `таблица` WHERE `time` < UNIX_TIMESTAMP()");
  9.  

Как мне приконнектить вторую БД?
ipv2007 Отправлено: 10 Июля, 2014 - 12:08:18 • Тема: Как удалить запись из БД по истечению срока • Форум: Работа с СУБД

Ответов: 19
Просмотров: 4314
Contr пишет:
Автор, обе таблицы у Вас в одной БД или в разных? Кросс-БД операторов не существует.

В том-то и дело, что в разных БД. Сижу и думаю, как подключиться сразу к двум БД или возможно по-другому решить вопрос?
ipv2007 Отправлено: 10 Июля, 2014 - 11:30:43 • Тема: Как удалить запись из БД по истечению срока • Форум: Работа с СУБД

Ответов: 19
Просмотров: 4314
Мелкий пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. DELETE FROM `tablename`, `anothertable` USING `tablename` JOIN `anothertable` ON `поле одной таблицы`=`поле другой табличц` WHERE `expire_date`<NOW()

Объясните, пожалуйста, в этой строчке, как я понимаю, мы указываем таблицы из обеих БД и далее делаем равнозначными разные поля из обеих БД?
Я правильно на картинке нарисовал?
ipv2007 Отправлено: 10 Июля, 2014 - 10:50:13 • Тема: Как удалить запись из БД по истечению срока • Форум: Работа с СУБД

Ответов: 19
Просмотров: 4314
Мелкий пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. DELETE FROM `tablename` WHERE `expire_date`<NOW()

Спасибо, я сделал таким образом
("DELETE FROM `таблица` WHERE `time` < UNIX_TIMESTAMP()");
Все удаляется, но теперь другой вопрос:
Мне надо, чтобы вместе с удалением этой строчки, удалялась строчка из другой БД, где нет уже указания даты. Единственное, что у них общее, это ник.
Как сделать так, чтобы при удалении строчки по методу, выше, в которой присутствует колонка с ником и датой дейтсвия, еще удалялась колонка с таким-же ником, но в другой БД и без даты действия?
Надеюсь, понятно объяснил... ;)
ipv2007 Отправлено: 10 Июля, 2014 - 10:19:14 • Тема: Как удалить запись из БД по истечению срока • Форум: Работа с СУБД

Ответов: 19
Просмотров: 4314
Уважаемые, помогите решить проблему.
Имеется БД в которую записана строчка с указанием даты окончания действия этой строчки в UNIX формате. т.е. мы знаем дату, когда должна быть удалена эта запись.
Какой мне нужно написать скрипт, чтобы в дальнейшем его повесить на CRON, который бы сверял дату в этой БД и удалял все строчки, дата которых закончилась?
Предоставлю скрипт, который заносит эти строчки в БД тому, кто согласится помочь.
Мой скайп pasha_ipv, готов оплатить помощь.

Также, готов в этой теме вместе с вами разобраться с этим делом, если никто за вознаграждение не поможет.
Спасибо.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB