Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafaeloliveira83

Cloud Tag - Nuvem de Tags Mysql

Recommended Posts

Encontrei o seguinte código na internet de Nuvem de Tag

 

<?php

$db_host = "localhost";
$db_user = "root";
$db_pass = "123";
$db_name = "tag";

mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error());
mysql_select_db($db_name);

function tag_info() { 
  $result = mysql_query("SELECT * FROM tag GROUP BY Nome ORDER BY Nome ASC"); 
  while($row = mysql_fetch_array($result)) { 
	$arr[$row['Nome']] = $row['count'];
  } 
  //ksort($arr); 
  return $arr; 
}

function tag_cloud() {

	$min_size = 20;
	$max_size = 60;

	$tags = tag_info();

	$minimum_count = min(array_values($tags));
	$maximum_count = max(array_values($tags));
	$spread = $maximum_count - $minimum_count;

	if($spread == 0) {
		$spread = 1;
	}

	$cloud_html = '';
	$cloud_tags = array();

	$step = ($max_size - $min_size)/($spread);


	foreach ($tags as $tag => $count) {
		$size = $min_size + ($count - $minimum_count) 
			* $step;

//  $size = ($max_size + $min_size)/$spread;
		$cloud_tags[] = '<a style="font-size: '. floor($size) . 'px' 
			. '" class="tag_cloud" href="http://localhost/tagcloud.php?s=' . $tag 
			. '" title="\'' . $tag  . '\' returned a count of ' . $count . '">' 
			. htmlspecialchars(stripslashes($tag)) . '</a>';
	}
	$cloud_html = join("\n", $cloud_tags) . "\n";
	return $cloud_html;

}

?>

 

Ele mostra certinho o banco de dados, mas ao clicar em cada tag do banco ele não vai para o nome desejado.

 

class="tag_cloud" href="http://localhost/tagcloud.php?s=' . $tag

Essa query string não funciona, pois vai sempre para o tagcloud.php então porque o ?=s

Compartilhar este post


Link para o post
Compartilhar em outros sites

você deve receber o parâmetro:

$_GET['s'];
e fazer a query no banco, apartir dela..

 

A idéia é que a página tagcloud.php gerencie todas as tags, sem importar quem ela é.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.