%s

", $blogpost_id, $title); for($i = 0; $i < count($tags); $i++) { $tag = $tags[$i]; printf(" %s ", $tag["color"], $tag["name"]); } printf(" Published on: %s

%s

", date("Y-m-d", strtotime($date_posted)), $abstract); } /** * Select all the blogposts from the database, their tags, then display them. */ function display_blog_previews(){ // Access global variables global $conn; // Check DB connection if($conn == null){ printf("

Failed DB connection, cannot proceed!

If you see this error in production, please shoot me an email with helpful details.
"); return; } // Prepare statement for selecting all the blogposts $stmt = $conn->prepare("SELECT blogpost_id, title, abstract, date_posted FROM blogposts ORDER BY date_posted DESC;"); // Execute the statement $stmt->execute(); // Fetch the blogposts $blogposts_arr = $stmt->fetchall(PDO::FETCH_ASSOC); // Prepare new statement for selecting the tags for a given blogpost $stmt = $conn->prepare("SELECT name, color FROM blogpost_tags INNER JOIN blogpost_has_tag ON blogpost_tags.tag_id = blogpost_has_tag.tag_id WHERE blogpost_id = :blogpost_id;"); // Go through all the blogposts, fetch their tags and display them for($i = 0; $i < count($blogposts_arr); $i++) { // Get info for the current blog $blog = $blogposts_arr[$i]; // Bind and execute the tag select $stmt->bindParam(":blogpost_id", $blog["blogpost_id"]); $stmt->execute(); // Fetch the tags $tags_arr = $stmt->fetchall(PDO::FETCH_ASSOC); // Display the blog display_blog_preview($blog["blogpost_id"], $blog["title"], $blog["abstract"], $blog["date_posted"], $tags_arr); } } ?>

My blogposts

These can range from well thought out slow-burning blood-churning gems to random brain farts in textual form, you can use tags to filter.