PHP interesse |
|
Hallo mensen,
Ik heb drie tabellen. Blog, user en post.
In de tabel blog staat o.a. de id van de user die de blog heeft geschreven.
In de tabel user staat o.a. de naam van de user die de blog heeft geschreven.
In de tabel post staat o.a. de comments van de blog.
Nu wil ik graag een query maken die de blogs selecteert met de daarbijhorende naam van de gebruiker die de blog heeft geschreven. Daarnaast wil ik dan ook het aantal comments bepalen voor elke blog.
Nu heb ik deze volgende query.
<?php
$sql = 'SELECT blog.*, user.user_username as blog_author, COUNT(post.blog_id) as blog_ccount
FROM blog
INNER JOIN post
ON post.blog_id = blog.blog_id
INNER JOIN user
ON user.user_id = blog.blog_author
GROUP BY post.blog_id';
?>
<?php $sql = 'SELECT blog.*, user.user_username as blog_author, COUNT(post.blog_id) as blog_ccount FROM blog INNER JOIN post ON post.blog_id = blog.blog_id INNER JOIN user ON user.user_id = blog.blog_author GROUP BY post.blog_id'; ?>
Deze voldoet eigenlijk maar gedeeltelijk in hetgene wat ik wil. De query weergeeft alleen de blogs wanneer er
a. De user van de user tabel nog bestaat.
b. Er al een comment is op de blog.
Nu wil ik echter dat de andere blogs waar nog geen comment op is of waarvan de user niet meer bestaat ook weergeven worden. Met bijvoorbeeld waarbij blog_ccount gelijk is aan NULL of 0 (zelfde geld voor blog_author)
De bovenstaande query geeft btw het volgende resultaat...
[0] => Array
(
[blog_id] => 1
[blog_author] =>
[blog_status] => 1
[blog_comment] => 1
[blog_ccount] => 1
[blog_title] => Hello world
[blog_subtitle] => Test Blog
[blog_date] => 2008-08-08
[blog_content] => Welcome to my blog, this is my very first message. Feel free to add a comment. Cheers and goodluck further.
)
( [blog_id] => 1 [blog_author] => [blog_status] => 1 [blog_comment] => 1 [blog_ccount] => 1 [blog_title] => Hello world [blog_subtitle] => Test Blog [blog_date] => 2008-08-08 [blog_content] => Welcome to my blog, this is my very first message. Feel free to add a comment. Cheers and goodluck further. )
voor diegene die willen weten hoe de tabellen er precies uitzien...
Verder moet ik nog even melden dat de tabel `post` ook word gebruikt voor de posts in me guestbook. Deze krijgen dan standaard het blog_id nummer 0.
|