[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Счетчик обращений к постам в БД
ak167
Всем привет!

Как сделать так, чтобы при обращении к определенной таблице в БД MySQL значение в поле "counter" увеличивалось на 1?
Нужно сделать счетчик, который определяет сколько людей прочло определенную тему в блоге.

Например: имеется 3 записи
id_title_text_counter
1 Имя1 текст1 5
2 Имя2 текст2 12
3 Имя3 текст3 9

С попощью запроса SELECT... WHERE id=2 извлечем данные и разложим в массив $data[] = mysql_fecth_array($result); Далее выведем на печать с помощью print или echo. Все!!! Значение в ячейке counter должно измениться автоматически на 13!!!
Такое возможно?

Сейчас у меня реализован этот механизм неоптимально, т.е. сначала идет извлечение всех данных, затем эти данные выводятся на печать, затем значение counter увеличивается с помощью $counter = $data[$i]['counter']+1; и записывается в БД с помощью mysql_query. А хотелось бы чтобы при извлечении данных значение counter увеличивалось бы автоматом и не пришлось бы приплюсовывать к нему единицу в php и записывать заново.



Спустя 10 минут, 12 секунд (17.12.2010 - 16:05) inpost написал(а):
ak167
А как тебе извлечь из БД "Не все данные", а только значение counter ? =)

Спустя 1 минута, 25 секунд (17.12.2010 - 16:07) inpost написал(а):
UPDATE `table` SET `i`=`i`+1 WHERE ...

Спустя 12 минут, 22 секунды (17.12.2010 - 16:19) ak167 написал(а):
Вы немножко не поняли. Постараюсь объяснить подругому:
есть например AUTOINCREMENT, который используют для генерации id при записи данных в БД. С помощью его каждой новой записи автоматически присваивается id на единицу больше предыдущего! Как сделать чтобы так же автоматом увеличивалось значение в ячейке counter при чтении определенных данных?

Например: имеется 3 записи
id_title_text_counter
1 Имя1 текст1 5
2 Имя2 текст2 12
3 Имя3 текст3 9

С попощью запроса SELECT... WHERE id=2 извлечем данные и разложим в массив $data[] = mysql_fecth_array($result); Далее выведем на печать с помощью print или echo. Все!!! Значение в ячейке counter должно измениться автоматически на 13!!!
Такое возможно?

Спустя 2 минуты, 41 секунда (17.12.2010 - 16:22) linker написал(а):
Ага, махнем палочкой волшебной и все само сделается.

Спустя 8 минут, 20 секунд (17.12.2010 - 16:30) inpost написал(а):
ak167
Где SELECT, Рядом и UPDATE мой.

Спустя 9 минут, 40 секунд (17.12.2010 - 16:40) ak167 написал(а):
Цитата (inpost @ 17.12.2010 - 13:30)
ak167
Где SELECT, Рядом и UPDATE мой.

inpost, не понял))) Что ты имел ввиду? Ты хотел сказать поставить два запроса в один mysql_query?
Типо так:
$sql = "SELECT ... WHERE id=2;";
$sql .= "UPDATE... WHERE id=2";
mysql_query($sql);

Так?

Спустя 13 минут, 35 секунд (17.12.2010 - 16:53) linker написал(а):
Так нельзя.

Спустя 1 час, 1 минута, 56 секунд (17.12.2010 - 17:55) inpost написал(а):
ak167
2 отдельных запроса по очереди.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.