Здравствуйте.
// подключаюсь к db и получаю все записи с переданным id
$connect = $db->query("SELECT * FROM `o_post` WHERE `id` = '$an_id'");
$get = $db->get_row($connect);
// далее создаю массив, для работы с ним в цикле
$categories = explode(',', $get['category']);
// здесь я вывожу все id, которые принадлежат посту
foreach ($categories as $id) {
echo $id . '<br>';
}
// а здесь получаю все записи, которые имеют вторую категорию и вывожу рандомно не более пяти записей
$n = 2; // указал вручную, чтобы работало
$all = $db->query("SELECT * FROM `o_post` WHERE `category` LIKE '%,$n,%' OR `category` LIKE '%,$n' OR `category` LIKE '$n,%' ORDER BY RAND() LIMIT 5");
$from = $db->get_row($all);
while ($from) {
echo $from['title'] . '<br>';
$from = $db->get_row($all);
}
Ранее я задавал вопрос:
Как с помощью цикла пройтись по полученному массиву и вывести из таблицы максимум 5 записей, у которых id поста равен присланному ($an_id) и в колонке category есть не менее двух совпадений по массиву (при этом необходимо учесть, что в таблице категории хранятся через запятую)?
Но на него никто не ответил, в итоге я сделал самостоятельно то, что удалось, но снова зашел в тупик.
Буду признателен за помощь!