I have a comics website which currently allows users to choose which comics they view by category: Charts, Office, Life, Misc, etc.
I'd like to implement a tagging system, similar to what we have here on StackOverflow, which will describe more of the content of each comic rather than its category. Ex: In Charts category, I have several business related...
My simple solution would be to handle it just how I've handled my categorization-
- Create a "Tags" table with tagid, tagname, tagdescription
- Add a tagid_ForeignKey field in comics table, and add a tag to each post.
- When a user clicks on a tag, it will show only those posts with that tag... or if there is also a category specified, it will show that specific category with that specific tag.
This approach, however, seems to limit me to one tag per category. What if I have a comic that is business and relationships related... so It'd need both of those tags.
How would I be able to attach multiple tags per comic?
EDIT:
A few more questions:
1) What do I insert into my new relational table... anything?
2) Also, for while ($row = $tag->fetch_assoc()) {
, how can I loop through a table if there is a join? Isn't that an associative array?
3) The issue is that I am echoing out the tag choices as such, so once a user clicks on a link, how would you be able to allow them to then click on another link to assign a 2nd tag?
function getTags() {
include 'dbconnect.php';
global $site;
$tag = $mysqli->query("SELECT tagid, tagname FROM tags");
//$tag = $mysqli->query("SELECT * FROM comics c INNER JOIN comictags ct ON (c.comicID = ct.comicID) WHERE ct.tag_id IN (1, 2, 3) GROUP BY c.comic_id");
mysqli_close($mysqli);
while ($row = $tag->fetch_assoc()) {
echo "<a href='?action=homepage&site=" . $site . "&tag=" . $row['tagid'] . "&tagname=" . $row['tagname'] . "'/>" . $row['tagname'] . "</a><br />";
}
}