Как я могу использовать запись из набора записей в качестве критериев в запросе MYSQL

Я впервые экспериментирую с PHP, поэтому надеюсь, что это не очевидный вопрос. У меня есть две таблицы в базе данных, одна называется пользователями, другая называется статьями. В таблице пользователей есть поле, содержащее категории, за которыми хочет следить пользователь. Используя набор записей в Dreamweaver, я могу получить информацию о текущем пользователе через набор записей. Это делается в коде ниже.

'$row_UserDets['CatFollow']'

На данный момент в поле есть значения, разделенные запятыми, однако я могу это изменить. Теперь я хочу выполнить поиск в поле категории таблицы статей и вернуть все результаты с этими категориями. До сих пор я пробовал это.

$query_usernews = "SELECT * FROM Articles WHERE CategoryOne IN ($row_UserDets['CatFollow']); $usernews = mysql_query($query_usernews, $database name) or die(mysql_error());

Я надеюсь, что в этом есть смысл. Пробовал несколько раз в разных форматах. Как я уже сказал, я новичок в этом, и, возможно, я делал это совершенно неправильно. человек Спасибо за ваше время.


person ajheath    schedule 08.05.2012    source источник
comment
Остерегайтесь SQL-инъекций! Вам придется использовать mysql_real_escape...   -  person Romain    schedule 08.05.2012


Ответы (1)


Попробуйте что-то вроде:

$query_usernews = "SELECT * FROM Articles WHERE CategoryOne IN ({$row_UserDets['CatFollow']})";

Или просто:

$query_usernews = "SELECT * FROM Articles WHERE CategoryOne IN (" . $row_UserDets['CatFollow'] . ")";

Как заявил Ромен в комментарии, вам необходимо инъекция SQL подтвердить свой код (mysql_real_escape или PDO + Подготовленные операторы).

person Yaniro    schedule 08.05.2012
comment
Спасибо. Это очень хорошо ответило на мой вопрос. - person ajheath; 08.05.2012