Solved

BLog tags

Posted on 2012-12-20
4
197 Views
Last Modified: 2013-01-10
Hi i am making blog script for one website and i get a problem with making tags feature.
I try to make this kind of sql query
Select date,tag as tags, author, name, full_text, keywords, description, url, blog.id from blog RIGHT JOIN tags ON tags.blog = blog.id where ".$where." date <= DATE(NOW()) and `show` = '1' limit ".$page.",".$limit."

Open in new window


But if i have 2 tag in one article it make clone article and show it twice. So if it any way to group all tags using for example ",". Or is any way to do it better.
0
Comment
Question by:umaxim
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 53

Expert Comment

by:Scott Fell, EE MVE
ID: 38710521
I am not very versed in php.  However, what you want to do is keep the tags in some delimited form such as a comma and your full record will look like

date = 1/1/2000
tags = abc,123,zxy
author=mr bill

Then in your php script  you can turn the tags field to an array and break it out with explode.
http://php.net/manual/en/function.explode.php

$tags = tags;
var_dump( explode( ',', $tags ) );

result

(
    [0] => string(5) "abc"
    [1] => string(5) "123"
    [2] => string(5) "xyz"
)

This is at least what I do in vb. I hope it translates.  I am trying to learn php too.
0
 
LVL 1

Author Comment

by:umaxim
ID: 38710530
I do not need to brake it on explode. I need to join them in mysql query so when i make query it give me all my blogs and all my tags with out making number of tags copy of blog.
0
 
LVL 53

Accepted Solution

by:
Scott Fell,  EE MVE earned 500 total points
ID: 38710644
I'm sorry, I think I see.  You want to end up with a list of unduplicated blog tags that have been used at least once.    If that is the case you can use.


Select tag as tags from blog RIGHT JOIN tags ON tags.blog = blog.id where ".$where." date <= DATE(NOW()) and `show` = '1' limit ".$page.",".$limit. GroupBy tag"

Again, I am more versed in ms but I think this translates similarly.
0
 
LVL 110

Expert Comment

by:Ray Paseur
ID: 38711523
You might want to consider "normalization" of the tags into a separate table.  If you're not sure you understand what "normalization" means, make a Google search for "Should I Normalize My Database" and read the very interesting design ideas -- both pro and con -- about this subject.  

Armed with that information your query may be able to use GROUP BY to limit the size of the results set.
0

Featured Post

On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article discusses four methods for overlaying images in a container on a web page
In part one, we reviewed the prerequisites required for installing SQL Server vNext. In this part we will explore how to install Microsoft's SQL Server on Ubuntu 16.04.
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
The viewer will learn how to dynamically set the form action using jQuery.

717 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question