@wagwandude

Как объединить в цикл и проверить на совпадение?

Здравствуйте.

// подключаюсь к 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 есть не менее двух совпадений по массиву (при этом необходимо учесть, что в таблице категории хранятся через запятую)?


Но на него никто не ответил, в итоге я сделал самостоятельно то, что удалось, но снова зашел в тупик.

Буду признателен за помощь!
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Кривая организация записей делает неудобной и медленной работу с вашей базой. если у вас есть категория 2, 12 и 20 то при $n = 2 выберутся все перечисленные мной категории. (задание на дом - подумать почему так получится)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы