Обновление номера комментария в БД - PullRequest
1 голос
/ 09 марта 2010

Я пытаюсь обновить столбец комментариев в одной таблице (Записи), когда новая строка добавляется в другую таблицу (blog_comments). Этот код находится внутри функции PHP, которая добавляет комментарий к БД:

    $count = mysql_query("SELECT COUNT(*) FROM blog_comments WHERE entry_title='$entry_title'");
$update = mysql_query("UPDATE Entries SET comments='$count' WHERE title='$entry_title'");

$ entry_title - это имя страницы. Этот код ничего не делает на данный момент; это ничего не меняет. Я не уверен, что я делаю неправильно. Есть идеи?

1 Ответ

4 голосов
/ 09 марта 2010

mysql_query() не возвращает результат напрямую. Возвращает ресурс, который вы можете использовать для получения результата:

$result = mysql_query("SELECT COUNT(*) FROM blog_comments WHERE entry_title='$entry_title'");
$row = mysql_fetch_array($result);
$count = $row[0];
$update = mysql_query("UPDATE Entries SET comments='$count' WHERE title='$entry_title'");

Две вещи, о которых стоит упомянуть:

  1. Использование заголовка в качестве иностранного ключа обычно не рекомендуется. Вы должны использовать идентификатор сообщения в блоге или что-то (imho); и

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...