Jump to content
php.lv forumi

kādu SELECT lietot?


Copy

Recommended Posts

Sveiki! Problēma tāda, ka nevaru iedomāties, kā lai uztaisa select vaicājumu sekojošai lietai.

Man ir divas tabulas - komenti un posti, kā tieši lietot selectu, ja ir vēlme uztaisīt atsevišķā php failā pēdējo 10 komentēto rakstu izvadi. Kā tieši likt selektam saprast, ka ir jāizvada tie posti no tabulas posti, kuros ir bijuši pēdējie komentāri.

Paldies!

Link to comment
Share on other sites

ok, my bad! =)

tātad tabulā posts lauki ir id, posts

tabulā komenti lauki ir com_id, post_id, coment, nick

 

posta id = komentu post_id, komentu com_id ir autoincrement

 

mēģināju pats selectu taisīt, bet baigi kokaini sanāca:

 

SELECT * FROM posts, komenti where posts.id = komenti.post_id order by com_id desc limit 10, rezultātā, izvada visus tos postus kuriem ir komentāri, un pie tam postus izvada tik daudz reižu laukā, cik katram postam ir komentāri, nu apmēram šadi tas izskatās:

 

post1 (3 kom)

post1 (3 kom)

post1 (3 kom)

post2 (2 kom)

post2 (2 kom)

 

tiešām neizprotu kur ir problēma, varbūt kāds zin!

Edited by Copy
Link to comment
Share on other sites

derēja tikai tik tālu cik tagad esu, bet vajag lai tie posti tik daudz nerādās, lai rādās tikai pēdējie komentētie =) itkā jau rāda tagad pēdējos komentētos, bet bik pa daudz rādās, vajag lai rāda post1 (3 kom), post2 (2 kom); pa vienam ne visus :D

Edited by Copy
Link to comment
Share on other sites

nu jā limit 10, tas jau strādā, izvada tikai 10 ierakstus, bet vienu un to pašu pēdējo komentēto ierakstu izvada tik daudz reižu cik tam ierakstam komentāru :D

vajag, lai izvada vienu reizi to pēdējo komentēto ierakstu :D

Link to comment
Share on other sites

atradu risinājumu, ja domā, tad var izdomāt =)

uztaisīju šitā, tagad strādā:

 

$sql = "select * from posts inner join komenti on posts.id = komenti.post_id group by komenti.post_id order by com_id desc limit 10";

 

:)

Link to comment
Share on other sites

vispār izdomāju citu loģisku variantu, kad attiecīgam postam taisa komentāru, es lieku insertot laiku tabulā post, kad noticis jauns komentārs, un pēc tam atlasu pēdējos komentētos pēc iekomentēšanas laika.

Manuprāt šis ir ērts variants, nav vaicājumā jāizmanto 2 tabulas, nav vairs vaicājumā jāizmanto komentāru tabula :)

 

UPDATE posts SET last_comented='$time' where post.id = $id

 

Tagad viss strādā nevainojami =)

Link to comment
Share on other sites

×
×
  • Create New...