Ir para conteúdo

POWERED BY:

Arquivado

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

Jonnas Fonini

[Resolvido] Nuvem de tags (tagcloud)

Recommended Posts

Galera, é o seguinte:

 

Eu e mais dois amigos estamos iniciando um guia online.

Tivemos a idéia de colocar uma nuvem de tags no site, para relacionar as palavras mais

buscadas.

Até conseguimos gerar a nuvem através de banco de dados, mas o banco de dados

precisa ser alterado manualmente.

Gostaria muito que alguém me desse uma força aí para alterar o banco de dados no momento

da busca, ou se alguém tiver alguma outra sugestão com certeza será muito bem vindo.

 

Desde já um abraço para todos do fórum

T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

velho, explica isso ai melhor:

 

"Gostaria muito que alguém me desse uma força aí para alterar o banco de dados no momento

da busca"

 

como assim?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seja bem vindo.

 

Explique-se melhor, o título de seu tópico não condiz muito com sua dúvida.

 

 

Cara, é o seguinte:

 

Eu fiz a nuvem de tags que puxa as tags de um banco de dados. Mas temos que alterar o banco de dados

cada vez que querermos mudar as tags.

Então gostaria de um sisteminha que a cada busca que o usuário realizasse, já alterasse o banco de dados automaticamente.

 

Ex: O cara digita: "restaurante". No banco de dados já existe o campo correspondente, com um respectivo campo para o contador.

Então gostaria de incrementar o contador no momento da busca.

 

Será que alguém pode me dar uma luz?

Desde já agradeço pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso não seria AJAX ?

 

Olha cara, pode até ser, naum manjo mto

Mas a linguagem q eu to usando é PHP mesmo

 

Mas se você tiver uma solução em AJAX tbm será mto bem vinda

 

Abração!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não manjo de AJAX, a questão é que tu quer uma coisa que seja alterada no ato da digitação não é isso ?

 

Meu, me add aí no msn q dai conversamos melhor

 

jfonini@hotmail.com

 

FLW

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

E então ? eu te fiz uma pergunta, seria isso ?

 

Não seria bem isso

Eu queria somente incrementar o contador no banco de dados

conforme a palavra digitada

Compartilhar este post


Link para o post
Compartilhar em outros sites

No ato do submit, basta você adicionar uma função para o insert, além da query da busca, só que antes seria interessante tu verificar se a palavra que será inserida já não existe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você vai criar um indice para fcada palavra? se sim lembre se de colocar UNIQUE na coluna, pra nao repetir a mesma palavra

 

 

Mas seria mais ou menos assim

 

$query = "mysql_query (SELECT * FROM tabela WHERE `palavras_do_banco` = 'palavra_a_procurar')";

if( mysql_num_rows ($result) < 0 ){
mysql_query (INSERT INTO tabela (palavras_do_banco) VALUES (palavra_a_procurar);
}

ma e so uma ideia...

Compartilhar este post


Link para o post
Compartilhar em outros sites

e se voce fizer assim:

$palavra_pesquisada = strtolower($_POST["search"]);

$procurar_tag_q = $mysqli->query("SELECT tag_id FROM tags WHERE tag = '".$palavra_pesquisada."' ") or die($mysqli->error);
if($procurar_tag_q->num_rows == '0'){ // se a tag ainda nao existir na bd ele criar um novo registo
  $insere_tag = $mysqli->query("INSERT INTO tags (`tag` , `tag_t_pesquisas` ) VALUES ( '".$palavra_pesquisada."', '1');") or die($mysqli->error);

} else { // se a tag existir add +1 no valor
 
  $update_contador = $mysqli->query("UPDATE tags SET `tag_t_pesquisas` = tag_t_pesquisas+1 WHERE tag = '".$palavra_pesquisada."' LIMIT 1;") or die($mysqli->error);

Depois monta um array e imprime as tags :P mas ja vou fazer isso que tb estou a precisar :D

 

 

foi feito assim em cima do joelho mas acho que é o que você quer

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem como disse percisa de uma coisa assim então criei algo muito simples :P

 

esta aqui o codigo:

 

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("teste");

if($_GET["pesquisa"] == "ok"){

	$palavra_pesquisada = strtolower($_POST["procurar"]);
	$ver_se_exite_tag = mysql_query("SELECT t_id FROM tags WHERE t_tag = '".$palavra_pesquisada."'") or die(mysql_error());
	if(mysql_numrows($ver_se_exite_tag) != '0') {
		$insere_mais_1 = mysql_query("UPDATE tags SET t_t_tags = t_t_tags+1 WHERE t_tag = '".$palavra_pesquisada."' LIMIT 1;") or die(mysql_error());
	} else {
		$insere_nova_tag = mysql_query("INSERT INTO tags (t_tag , t_t_tags) VALUES ('".$palavra_pesquisada."', '1');") or die(mysql_error());
	}
	echo "Resultados da Pesquisa aqui :P <br>";
	echo '<a href="?pesquisa=index">Voltar a pagina principal</a>';
} else {
	echo '
	<form method="POST" action="?pesquisa=ok">
		<p>Pesquisar<br>
			 <input type="text" name="procurar" size="78"><br>
					
			<input type="submit" value="enviar" name="B1"></p>
	</form>';
	$ver_tags = mysql_query("SELECT t_tag, t_t_tags FROM tags") or die(mysql_error());
	$tags = array();
	while ($tag_sql = mysql_fetch_array($ver_tags)){
		$tags[$tag_sql["t_tag"]] = $tag_sql["t_t_tags"];
	}

	$tamanho_maximo_letra = 72; // tamanho maximo da letra
	$tamanho_minimo_letra = 12; // tamanho minimo da letra


	$maxima_quantidade = max(array_values($tags)); // saber o valor mais alto do array
	$minima_quantidade = min(array_values($tags));// saber o valor mais baixo do array


	$espalha = $maxima_quantidade - $minima_quantidade;
	$espalha = ($espalha == 0) ? $espalha = 1 : $espalha = $espalha; // caso o valor da conta deia 0 ele define a variavel para o valor de 1

	$tamanho_incr = ($tamanho_maximo_letra - $tamanho_minimo_letra) / ($espalha);


	foreach ($tags as $key => $value) {
		$tamanho = round($tamanho_minimo_letra + (($value - $minima_quantidade) * $tamanho_incr));
		echo '<a href="#" style="font-size: ' . $tamanho . 'px">' . $key . '</a> ';
	}
}

?>

e é esta a tabela que estou a usar:

 

CREATE TABLE `tags` (
 `t_id` int(11) NOT NULL AUTO_INCREMENT,
 `t_tag` varchar(255),
 `t_t_tags` int(25),
 PRIMARY KEY(`t_id`),
 UNIQUE INDEX `Tag`(`t_tag`)
)
ENGINE=INNODB;

este código só mostra como vai funcionar a parte das Tag Cloud, o sistema de busca e afins não esta aqui apresentado :P

 

acho que era isto que queria nao era Jonnas Fonini

 

Cumps

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem como disse percisa de uma coisa assim então criei algo muito simples :P

 

esta aqui o codigo:

 

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("teste");

if($_GET["pesquisa"] == "ok"){

	$palavra_pesquisada = strtolower($_POST["procurar"]);
	$ver_se_exite_tag = mysql_query("SELECT t_id FROM tags WHERE t_tag = '".$palavra_pesquisada."'") or die(mysql_error());
	if(mysql_numrows($ver_se_exite_tag) != '0') {
		$insere_mais_1 = mysql_query("UPDATE tags SET t_t_tags = t_t_tags+1 WHERE t_tag = '".$palavra_pesquisada."' LIMIT 1;") or die(mysql_error());
	} else {
		$insere_nova_tag = mysql_query("INSERT INTO tags (t_tag , t_t_tags) VALUES ('".$palavra_pesquisada."', '1');") or die(mysql_error());
	}
	echo "Resultados da Pesquisa aqui :P <br>";
	echo '<a href="?pesquisa=index">Voltar a pagina principal</a>';
} else {
	echo '
	<form method="POST" action="?pesquisa=ok">
		<p>Pesquisar<br>
			 <input type="text" name="procurar" size="78"><br>
					
			<input type="submit" value="enviar" name="B1"></p>
	</form>';
	$ver_tags = mysql_query("SELECT t_tag, t_t_tags FROM tags") or die(mysql_error());
	$tags = array();
	while ($tag_sql = mysql_fetch_array($ver_tags)){
		$tags[$tag_sql["t_tag"]] = $tag_sql["t_t_tags"];
	}

	$tamanho_maximo_letra = 72; // tamanho maximo da letra
	$tamanho_minimo_letra = 12; // tamanho minimo da letra


	$maxima_quantidade = max(array_values($tags)); // saber o valor mais alto do array
	$minima_quantidade = min(array_values($tags));// saber o valor mais baixo do array


	$espalha = $maxima_quantidade - $minima_quantidade;
	$espalha = ($espalha == 0) ? $espalha = 1 : $espalha = $espalha; // caso o valor da conta deia 0 ele define a variavel para o valor de 1

	$tamanho_incr = ($tamanho_maximo_letra - $tamanho_minimo_letra) / ($espalha);


	foreach ($tags as $key => $value) {
		$tamanho = round($tamanho_minimo_letra + (($value - $minima_quantidade) * $tamanho_incr));
		echo '<a href="#" style="font-size: ' . $tamanho . 'px">' . $key . '</a> ';
	}
}

?>

e é esta a tabela que estou a usar:

 

CREATE TABLE `tags` (
 `t_id` int(11) NOT NULL AUTO_INCREMENT,
 `t_tag` varchar(255),
 `t_t_tags` int(25),
 PRIMARY KEY(`t_id`),
 UNIQUE INDEX `Tag`(`t_tag`)
)
ENGINE=INNODB;

este código só mostra como vai funcionar a parte das Tag Cloud, o sistema de busca e afins não esta aqui apresentado :P

 

acho que era isto que queria nao era Jonnas Fonini

 

Cumps

 

 

Muito obrigado a todos ai pela força

 

Espero daqui a algum tempo também estar colaborando aqui no Imasters

 

Abração e sucesso a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem como disse percisa de uma coisa assim então criei algo muito simples :P

 

esta aqui o codigo:

 

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("teste");

if($_GET["pesquisa"] == "ok"){

	$palavra_pesquisada = strtolower($_POST["procurar"]);
	$ver_se_exite_tag = mysql_query("SELECT t_id FROM tags WHERE t_tag = '".$palavra_pesquisada."'") or die(mysql_error());
	if(mysql_numrows($ver_se_exite_tag) != '0') {
		$insere_mais_1 = mysql_query("UPDATE tags SET t_t_tags = t_t_tags+1 WHERE t_tag = '".$palavra_pesquisada."' LIMIT 1;") or die(mysql_error());
	} else {
		$insere_nova_tag = mysql_query("INSERT INTO tags (t_tag , t_t_tags) VALUES ('".$palavra_pesquisada."', '1');") or die(mysql_error());
	}
	echo "Resultados da Pesquisa aqui :P <br>";
	echo '<a href="?pesquisa=index">Voltar a pagina principal</a>';
} else {
	echo '
	<form method="POST" action="?pesquisa=ok">
		<p>Pesquisar<br>
			 <input type="text" name="procurar" size="78"><br>
					
			<input type="submit" value="enviar" name="B1"></p>
	</form>';
	$ver_tags = mysql_query("SELECT t_tag, t_t_tags FROM tags") or die(mysql_error());
	$tags = array();
	while ($tag_sql = mysql_fetch_array($ver_tags)){
		$tags[$tag_sql["t_tag"]] = $tag_sql["t_t_tags"];
	}

	$tamanho_maximo_letra = 72; // tamanho maximo da letra
	$tamanho_minimo_letra = 12; // tamanho minimo da letra


	$maxima_quantidade = max(array_values($tags)); // saber o valor mais alto do array
	$minima_quantidade = min(array_values($tags));// saber o valor mais baixo do array


	$espalha = $maxima_quantidade - $minima_quantidade;
	$espalha = ($espalha == 0) ? $espalha = 1 : $espalha = $espalha; // caso o valor da conta deia 0 ele define a variavel para o valor de 1

	$tamanho_incr = ($tamanho_maximo_letra - $tamanho_minimo_letra) / ($espalha);


	foreach ($tags as $key => $value) {
		$tamanho = round($tamanho_minimo_letra + (($value - $minima_quantidade) * $tamanho_incr));
		echo '<a href="#" style="font-size: ' . $tamanho . 'px">' . $key . '</a> ';
	}
}

?>

e é esta a tabela que estou a usar:

 

CREATE TABLE `tags` (
 `t_id` int(11) NOT NULL AUTO_INCREMENT,
 `t_tag` varchar(255),
 `t_t_tags` int(25),
 PRIMARY KEY(`t_id`),
 UNIQUE INDEX `Tag`(`t_tag`)
)
ENGINE=INNODB;

este código só mostra como vai funcionar a parte das Tag Cloud, o sistema de busca e afins não esta aqui apresentado :P

 

acho que era isto que queria nao era Jonnas Fonini

 

Cumps

Bem entendi a idéia disso e acho que deva funcionar mesmo olhando por cima. Não testei ainda.

Estou iniciando sobre esse assunto de tagcloud.

Bom, tenho uma dúvida: Como ficariam os links destas tags?

Estes seriam linkados para as suas respectivas categorias? ou estou errado?

Ex: na tag mostra duas palavras (computador,mouse) e no site do cara tendo estas duas categorias com link mostrando na direita.

os links de (computador,mouse) então devem apontar para as suas categorias?

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.