que desea recuperar algunas etiquetas de mi base de datos, que son de la forma:cómo seleccionar palabras clave únicas de una coma separó etiquetas
topic_id tags
1 `tag1,tag2,tag3`
2 `tag1,tag4,tag5`
3 `tag2,tag4,tag5`
4 `tag6,tag7,tag2`
quiero tener algo como esto:
tag1 tag2 tag3 tag4 tag5 tag6 tag7
es decir, todas las etiquetas únicas
De modo que pueda ajustar cada etiqueta en un enlace para agrupar las noticias que tengan tales etiquetas específicas.
Esto siguiente consulta que he escrito hasta ahora no está funcionando:
$tags = mysql_query("SELECT tags, topic_id
FROM forum_topics
WHERE topic_id > 0") or die (mysql_error());
while($tag = mysql_fetch_assoc($tags)){
$split_tags = "$tag";
$pieces = explode(",", $split_tags);
echo $pieces ;
Cuando hice print_r($pieces);
que tiene Array ([0] => Array) Array ([0] => Array) Array ([0] => Array) Array ([0] => Array)
que no era lo que estaba buscando.
Como es ahora mi estructura de tabla se ve así topic_id , topic_head, topic_body, topic_tag, topic_date, topic_owner
.. ¿Cómo puedo hacer que el topic_tag sea normal?
¿Es esta una tabla que usted construyó? Si es así, claramente no está normalizado. Una tabla normalizada tendría una asignación de 1 a 1 entre topic_id y las etiquetas. A continuación, puede simplemente hacer una consulta 'select distinct tags from forum_topics' para obtener lo que desea. –
Además, no use las funciones 'mysql_ *' en su código. Estas funciones ya no se mantienen y están [en desuso] (http://news.php.net/php.internals/53799). En su lugar, debe usar [MySQLi] (http://php.net/mysqli) o [PDO] (http://php.net/pdo). No sabes que usar? [Este artículo] (http://php.net/manual/en/mysqlinfo.api.choosing.php) debería ayudar. –