Связывание двух таблиц в запросе

0

У меня есть два поля... одно имя категории, а другое - название документа... Когда я нажимаю кнопку "Отправить", заголовок документа должен быть сохранен в таблице документов, ссылаясь на выбранное название категории... которое в другой таблице.

Категория может иметь n число названий документов...

 $result = mysql_query("UPDATE stinky_menu SET description  = '$docuTitle', url = '$linkTitle' WHERE title = '$catID'");

Как я могу выполнить другой запрос в моей другой таблице в предложение WHERE.

  • 0
    Я надеюсь, что это псевдокод. В противном случае у вас есть серьезные проблемы с инъекциями SQL. Я бы порекомендовал вам использовать подготовленные заявления либо в PDO, либо в MySQL.
Теги:

2 ответа

1
Лучший ответ

Как правило, я обрабатываю этот случай, если поле выбора в форме HTML возвращает идентификатор категории, а не заголовок. Это позволяет мне вставлять или обновлять запись без необходимости дополнительного поиска в моих справочных таблицах (в этом случае ваша таблица категорий).

1

Использование: именованная форма для параметров (? -форма также работает, конечно), самый простой способ сделать то, что вы хотите, - использовать FROM и JOIN в вашем UPDATE - что-то вроде (в зависимости от некоторых деталей, которые у вас нет при условии,):

UPDATE stinkymenu
SET description = :docuTitle, url = :linkTitle
FROM stinkymenu
JOIN categorytable
ON stinkymenu.catId = categorytable.id
WHERE categorytable.title = :catId

Смотрите PDO docs для использования такого "подготовленного оператора" и привяжите его параметры к вашим переменным.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню