Xwab
Форумыnavigate_nextНебольшие вопросы по PHP/MySQL

Топ: Небольшие вопросы по MySQL
Сообщения
GRAYA

Ребята хелп. Пишу форум, столкнулся с проблемой подсчета кол-во постов пользователя. Если быть точнее, удаляю форум, и хочу вычесть кол-во постов каждого пользователя в этом форуме. С алгоритмом понятно все, а вот выборку сделать немогу. Таблица с постами имеет поля key number for_id sub_id post user_id user_login time
Помогите вывести в цикл каждое id пользователя из поля user_id без повторов (иначе вычту кол-во постов столько же раз, сколько user_id существует в этой таблице)

29 Май 2011, 20:45
IceJOKER

Как обновить значения в таблице не трогая тех данных, которые там уже есть.
Например:
Есть таблица `news` в ней `title`,`fullnews`, `shortnews`, `keywords` и вниз записи, штук <2000 нужно в keywords записать данные из переменной не трогая саму новость и её данных
P.S. запрос `UPDATE` 'keywords'='".$kw."' обновляет `keywords` но все остальные записи исчезают
добавлено спустя 1 минуту:

31 Май 2011, 15:21
Gemorroj

GRAYA, SELECT * FROM table WHERE xx=xx GROUP BY user_id
IceJOKER, UPDATE `news` SET `keywords`= '" . $kw . "'

31 Май 2011, 15:28
IceJOKER

Gemorroj, например если сделать запрос
mysql_query("update `table` set `keywords`='".$kw."' where `id_news`='".$id."'");
то остальные данные остаются? т.е. сама новость и т.д.


Я думаю, что он обновит кейвордс и поставит пустые значения другим полям

31 Май 2011, 15:31
Gemorroj

остальные данные останутся, если у тебя не стоит специально триггеров удаляющих данные.

31 Май 2011, 15:36
IceJOKER

Gemorroj, спасибо))) почему-то всегда думал,что при update все остальные значения опустеют

31 Май 2011, 15:39
sew960i

есть строки вида
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?

31 Май 2011, 16:33
Kovalsky

sew960i, первое что приходит в голову, что изначально надо было делать строки вида - ,1,2,11,3,4,
то есть добивать запятыми вначале и в конце и искать уже по параметру ,1, а не просто 1

п.с. добить строки запятыми можно и сечас в принципе...

31 Май 2011, 16:36
sew960i

Kovalsky, можно... но этого делать я не хочу... Во первых менять более 300 записей в базе и во вторых функция explode будет считать пустые значения перед первой и после последней запятыми... Много переделывать нужно будет...( А так просто придумать подходящую маску (регулярку) или как там... И все будет норм...
-------
Была такая
REGEXP '(^|[^[:digit:]])+$sid+([^[:digit:]]|$)'
но не то...
Нужно придумать более подходящий вариант...

31 Май 2011, 17:16
Gemorroj

sew960i, зачем тут регексп?
чем LIKE не подошел?
ids LIKE "%1,%" OR ids LIKE "%,1%" OR ids = "1"

31 Май 2011, 19:34
Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.