2010-04-07 3 views
0

Есть ли способ для меня получить псевдо-идентификатор сообщения из категории, к которой он принадлежит? Скажем, у меня есть эти сообщенияWordpress - Получить номер сообщения в категории

 
post_id | post_title | post_cat 
--------+------------+--------- 
0  | a post  | cat1 
1  | a post1 | cat2 
2  | a post2 | cat1 
3  | a post3 | cat2 
... 
57  | a post57 | cat2 

Я хочу сообщения от cat2 и идентификаторы сообщений, чтобы быть по отношению к категории они были размещены в. Что-то вроде

 
post_id | post_title | post_cat | cat_post_id 
--------+------------+----------+-------- 
1  | a post1 | cat2  | 1 
3  | a post3 | cat2  | 2 
57  | a post57 | cat2  | 3 

ответ

1

Вы пытаетесь достичь чего-то аналогично тому, что мы обсудили здесь - Creating a numerical order index on a MySQL table

SET @rank=0; 
SELECT @rank:[email protected]+1 AS cat_post_id, post_id, post_title, post_cat 
FROM posts 
WHERE post_cat = 'cat2' 
ORDER BY post_id DESC; 
+0

Я думаю, что это могло бы работать, если бы я всегда получал смежные посты. Я не уверен, что делать, если в моем результирующем наборе были только «post1» и «post57». – Chris

+0

Это не основано на post_id в таблице, это итератор, вы можете поместить все в предложение WHERE, и вы всегда будете получать последовательные числа для cat_post_id. –

+0

Правильно, и я не хочу этого. Я бы по-прежнему хотел, чтобы «post57» имел cat_post_id = 3. – Chris

0

Это в петле? Если это:

if(is_category(2)) { 
    echo the_ID(); 
    i++; 
    echo i++; 
} 

Теперь, если вы делаете это через SQL. Вам нужно будет добавить столбец.