Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Sistema de etiquetas o tags en PHP

Hola compañeros, tengo un problema y quisiera que alguno de ustedes pueda ayudarme.
El caso es que estoy creando un sistema de tags (tags Cloud) para mi blog. Algo parecido a esto

Que no es más que un sistema de etiquetas. Tengo casi todo hecho, ya hice el script que recoge los valores de la base de datos y le da una clase según los tags más usados o menos usados. El problema está en que al hacer varios artículos con los mismos tags, no se me acumula la cantidad de veces usado sino que se inserta a la tabla como si no existiera. Les dejo una imagen de ejemplo.

Esta imagen es el resultado que obtengo, y está mal.


Y me debería dar algo así


A continuación, el código de registro de base de datos.
<?php
require_once('../connection/config.php');
$connect;
$database;
$Titulo = $_POST['title'];
$Articulo = $_POST['articulo'];
$Tags = $_POST['tags'];
$Fecha = date('d M,Y');
$Hora = date('h:i');
$Wrtier = $Me;
if (!empty($Titulo) and !empty($Articulo)) {
	$Etiquetas = explode(",",$Tags);
	$numero=count($Etiquetas);  
	$i = 0; 
	while($i <= $numero) {
		$revTagsQry = mysql_query('select tags from jtags');
		if($revTags = mysql_fetch_array($revTagsQry)) {
			if ($revTags['tags'] != $Etiquetas[]) {
				mysql_query('insert into jtags (tags) values ("'.$Etiquetas[$i].'")');
			} else if ($revTags['tags'] == $Etiquetas[]){
				mysql_query('update jtags set frecuencia=(frecuencia+1) where tags="'.$Etiquetas[$i].'"');
			}
		}
		$i =($i+1);
	}
	$FinalTags = mysql_query('select id from jtags order by id desc limit 1');
	if($FinalTag = mysql_fetch_array($FinalTags)) {
		mysql_query('delete from jtags where id="'.$FinalTag['id'].'"'); // Esto es porque me queda un espacio en blanco en la base de datos cada vez que registro un articulo con tags. Con esto lo elimino
	}
	mysql_query('insert into jpost (title,post,tags,date,time,writer) values ("'.$Titulo.'","'.$Articulo.'","'.$Tags.'",
		"'.$Fecha.'","'.$Hora.'","'.$Wrtier.'")');
	echo '<script type="text/javascript">.alert("Articulo publicado con éxito");</script>';
	header('Location:'.$urlWeb);
} else {
	echo '<script type="text/javascript">alert("Error, articulo no publicado");</script>';
}
?>
NOTA desde el primer IF, hasta $i = ($i+1) es el registro de las etiquetas. Lo demás es definición de variables y registro de artículo en otra tabla.

NOTA2 Hay varias maneras de insertar tags en la base de datos. Yo lo hago en un solo input separadas por comas (,) y mediante explode() de PHP separarla y se sube una a una. El problema es que no se como hacer que un condicional IF detecte cual está repetida y cual no. Ahora, si subo cada tag por separado en inputs diferentes, no pasaría eso. Pero no, yo quiero es hacerlo separándolas por comas (,) xd

Gracias
10
Puntos
5100
Visitas
3
Resp
Por Jose hace 125 meses
Experto Sitio web
Respuesta #1
Problema solucionado por medios propios, pronto crearé un tema enseñando como hacer un sistema de tags (Tags Cloud) que les vendría bastante bien a cualquiera que esté desarrollando páginas webs. Es algo de moda en las páginas, un Tag Cloud (Nube de etiquetas). O sea, de los temas o categorías más nombradas
10
Puntos
Por Jose hace 125 meses
Experto Sitio web
Respuesta #2
eres un crack
0
Puntos
Por zeuskx hace 125 meses
Administrador Sitio web
Respuesta #3
Siete meses después, Eh aquí el tema.

Sistema de etiquetas o tag cloud
0
Puntos
Por Jose hace 118 meses
Experto Sitio web
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate