Ребята хелп. Пишу форум, столкнулся с проблемой подсчета кол-во постов пользователя. Если быть точнее, удаляю форум, и хочу вычесть кол-во постов каждого пользователя в этом форуме. С алгоритмом понятно все, а вот выборку сделать немогу. Таблица с постами имеет поля key number for_id sub_id post user_id user_login time
Помогите вывести в цикл каждое id пользователя из поля user_id без повторов (иначе вычту кол-во постов столько же раз, сколько user_id существует в этой таблице)
Как обновить значения в таблице не трогая тех данных, которые там уже есть.
Например:
Есть таблица `news` в ней `title`,`fullnews`, `shortnews`, `keywords` и вниз записи, штук <2000 нужно в keywords записать данные из переменной не трогая саму новость и её данных
P.S. запрос `UPDATE` 'keywords'='".$kw."' обновляет `keywords` но все остальные записи исчезают
добавлено спустя 1 минуту:
GRAYA, SELECT * FROM table WHERE xx=xx GROUP BY user_id
IceJOKER, UPDATE `news` SET `keywords`= '" . $kw . "'
Gemorroj, например если сделать запрос
mysql_query("update `table` set `keywords`='".$kw."' where `id_news`='".$id."'");
то остальные данные остаются? т.е. сама новость и т.д.
Я думаю, что он обновит кейвордс и поставит пустые значения другим полям
остальные данные останутся, если у тебя не стоит специально триггеров удаляющих данные.
31 Май 2011, 15:36Gemorroj, спасибо))) почему-то всегда думал,что при update все остальные значения опустеют
31 Май 2011, 15:39есть строки вида
1,3,7,8,12,15
7,9,11,25
и тд...
сам запрос
mysql_query("select * from base where ids REGEXP '(^|[^[:digit:]])+$sid+([^[:digit:]]|$)' ORDER BY `id` DESC LIMIT $i,1")
Все работает, но не совсем правильно...
при $sid='1';
11 тоже выбирается...
как сделать, чтобы выбиралось только значение 1?
sew960i, первое что приходит в голову, что изначально надо было делать строки вида - ,1,2,11,3,4,
то есть добивать запятыми вначале и в конце и искать уже по параметру ,1, а не просто 1
п.с. добить строки запятыми можно и сечас в принципе...
Kovalsky, можно... но этого делать я не хочу... Во первых менять более 300 записей в базе и во вторых функция explode будет считать пустые значения перед первой и после последней запятыми... Много переделывать нужно будет...( А так просто придумать подходящую маску (регулярку) или как там... И все будет норм...
-------
Была такая
REGEXP '(^|[^[:digit:]])+$sid+([^[:digit:]]|$)'
но не то...
Нужно придумать более подходящий вариант...
sew960i, зачем тут регексп?
чем LIKE не подошел?
ids LIKE "%1,%" OR ids LIKE "%,1%" OR ids = "1"