Поиск контента после удаления страницы (phpFox)

Страница (модуль: pages) - это модуль, который представляет собой "соединение" основных модулей, таких, как: форум, фотографии, видео, блог и так далее, другими словами, если вы создаете новую страницу, вы создаете отдельный раздел сайта. Хотя, что рассказывать, тек кто бывает в соцсетях, знает, что такое страница или группа, что мне кажется одним и тем же.

При удалении страницы, которая имеет не мало контента, при этом сайт находится на обычном хостинге, может вылететь ошибка, после чего сама страница может быть удалена, а ее контент будет удален не полностью. Для удаления контента, что принадлежит удаляемой страницы я написал небольшой сценарий, если интересно, можете ознакомиться: Удаление страницы (Модуль Pages phpFox 3). А в этой теме я расскажу, как найти оставшийся контент (мусор), после неудачной попытки удалить страницу.

И так начнем! Я набросал такой код:
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);

define('PHPFOX', true);

include('include/setting/server.sett.php');

$db = new mysqli($_CONF['db']['host'], $_CONF['db']['user'], $_CONF['db']['pass'], $_CONF['db']['name']);
if ($db->connect_errno)
{
	exit('Error MYSQLI: ' . $db->connect_error);
}
$db->set_charset('utf8');

$q = 'SELECT page_id
	FROM phpfox_pages';
$r = $db->query($q) or exit($db->error);

$pages = array();
while ($row = $r->fetch_assoc())
{
	$pages[] = $row['page_id'];
}

Это будет, как основа всему сценарию, но это не все. Давайте попробуем начать с поиска фотографий. Поиск осуществляется по полю group_id, таблицы phpfox_photo. С начало мы собираем id всех страниц (это делает код выше), затем собираем все id фотографий и id групп (из записи фото), чтобы проверить существует ли такая страница или нет (это будет выполнять код ниже):
$q = 'SELECT photo_id, group_id
	FROM phpfox_photo';
$r = $db->query($q) or exit($db->error);

while ($row = $r->fetch_assoc())
{
	if (!empty($row['group_id']) && !in_array($row['group_id'], $pages))
	{
		echo '<a href="https://сайт.ком/photo/' . $row['photo_id'] . '/" target="_blank">' . $row['photo_id'] . '</a><br />';
	}
}

Этот код должен быть в одном файле с первым кодом (после первого кода).
сайт.ком - замените на домен своего сайта.

Если фотографии, которые принадлежат несуществующей страницы будут найдены, они отобразятся на экране в виде ссылок (id фото). Что делать с такими фотографиями решать вам, удалять или оставить.

Покажу еще один пример, как, например, искать темы, что принадлежат несуществующей (удаленной) страницы. Тут вместо кода с этого поста (что представлен вторым) вставляем следующею "композицию":
$q = 'SELECT thread_id, group_id
	FROM phpfox_forum_thread';
$r = $db->query($q) or exit($db->error);

while ($row = $r->fetch_assoc())
{
	if (!in_array($row['group_id'], $pages))
	{
		echo '<a href="https://сайт.ком/forum/thread/' . $row['thread_id'] . '/"  target="_blank">' . $row['thread_id'] . '</a><br />';
	}
}

С блогами, событиями и всем остальным все делается по аналогии.