如何使用 CRON 作业在 Joomla DB 上 运行 此查询?
How to run this query on Joomla DB using CRON job?
我已经创建了这些查询(并在 PhpMyAdmin 中对其进行了测试),现在需要 运行 在我的 Joomla!数据库使用 CRON 作业调用 .php 文件。
DELETE FROM j25_virtuemart_vmuser_shoppergroups WHERE id IN(
SELECT * FROM (
SELECT SG.id FROM j25_virtuemart_vmuser_shoppergroups SG
JOIN j25_acym_user AU on AU.cms_id = SG.virtuemart_user_id
JOIN j25_acym_user_has_list AUL ON AUL.user_id = AU.id
where SG.virtuemart_shoppergroup_id = 10 AND (AUL.list_id = 13 AND AUL.status=0)
) as P
);
INSERT INTO j25_virtuemart_vmuser_shoppergroups (virtuemart_user_id, virtuemart_shoppergroup_id)
SELECT * FROM( SELECT cms_id, '10'
FROM j25_acym_user_has_list AUL
left JOIN j25_acym_user AU ON AUL.user_id = AU.id
left JOIN j25_virtuemart_vmuser_shoppergroups SG on AU.cms_id = SG.virtuemart_user_id
where SG.virtuemart_shoppergroup_id IS NULL AND (AUL.list_id = 13 AND AUL.status=1)) as foo
ON duplicate KEY update
virtuemart_shoppergroup_id=virtuemart_shoppergroup_id;
如何将其转换为一个(或 2 个)工作 PHP 文件,我可以使用 WGET 调用这些文件?
当您 运行 通过 cron 作业查询时,您应该包含 joomla 文件 framework.php 和 defines.php 尝试以下代码
define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);
define('JPATH_BASE', $_SERVER['DOCUMENT_ROOT'] . DS . '');
require_once (JPATH_BASE . DS . 'includes' . DS . 'defines.php');
require_once (JPATH_BASE . DS . 'includes' . DS . 'framework.php');
$db = JFactory::getDbo();
$query = 'DELETE FROM j25_virtuemart_vmuser_shoppergroups WHERE id IN(
SELECT * FROM (
SELECT SG.id FROM j25_virtuemart_vmuser_shoppergroups SG
JOIN j25_acym_user AU on AU.cms_id = SG.virtuemart_user_id
JOIN j25_acym_user_has_list AUL ON AUL.user_id = AU.id
where SG.virtuemart_shoppergroup_id = 10 AND (AUL.list_id = 13 AND AUL.status=0)
) as P
)';
$db->setQuery($query);
$db->query();
我已经创建了这些查询(并在 PhpMyAdmin 中对其进行了测试),现在需要 运行 在我的 Joomla!数据库使用 CRON 作业调用 .php 文件。
DELETE FROM j25_virtuemart_vmuser_shoppergroups WHERE id IN(
SELECT * FROM (
SELECT SG.id FROM j25_virtuemart_vmuser_shoppergroups SG
JOIN j25_acym_user AU on AU.cms_id = SG.virtuemart_user_id
JOIN j25_acym_user_has_list AUL ON AUL.user_id = AU.id
where SG.virtuemart_shoppergroup_id = 10 AND (AUL.list_id = 13 AND AUL.status=0)
) as P
);
INSERT INTO j25_virtuemart_vmuser_shoppergroups (virtuemart_user_id, virtuemart_shoppergroup_id)
SELECT * FROM( SELECT cms_id, '10'
FROM j25_acym_user_has_list AUL
left JOIN j25_acym_user AU ON AUL.user_id = AU.id
left JOIN j25_virtuemart_vmuser_shoppergroups SG on AU.cms_id = SG.virtuemart_user_id
where SG.virtuemart_shoppergroup_id IS NULL AND (AUL.list_id = 13 AND AUL.status=1)) as foo
ON duplicate KEY update
virtuemart_shoppergroup_id=virtuemart_shoppergroup_id;
如何将其转换为一个(或 2 个)工作 PHP 文件,我可以使用 WGET 调用这些文件?
当您 运行 通过 cron 作业查询时,您应该包含 joomla 文件 framework.php 和 defines.php 尝试以下代码
define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);
define('JPATH_BASE', $_SERVER['DOCUMENT_ROOT'] . DS . '');
require_once (JPATH_BASE . DS . 'includes' . DS . 'defines.php');
require_once (JPATH_BASE . DS . 'includes' . DS . 'framework.php');
$db = JFactory::getDbo();
$query = 'DELETE FROM j25_virtuemart_vmuser_shoppergroups WHERE id IN(
SELECT * FROM (
SELECT SG.id FROM j25_virtuemart_vmuser_shoppergroups SG
JOIN j25_acym_user AU on AU.cms_id = SG.virtuemart_user_id
JOIN j25_acym_user_has_list AUL ON AUL.user_id = AU.id
where SG.virtuemart_shoppergroup_id = 10 AND (AUL.list_id = 13 AND AUL.status=0)
) as P
)';
$db->setQuery($query);
$db->query();