Ir para conteúdo

POWERED BY:

Arquivado

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

Bruuno Skyinbox

[Resolvido] Mudar imagem por determinado numero de cliques

Recommended Posts

Gente, preciso de um Help.

 

Estou criando um site pra um grupo de escoteiros. O problema é que o cliente me pediu que eu fizesse uma pagina de comentários, onde os escoteiros colocariam diariamente o que eles fizeram, uma especie de relação de homework, até ai ta tudo otimo, o problema é que ele quer que, depois de um determinado numero de postagens, na pagina do escoteiro aparecesse uma medalha. ( sendo que cada escoteiro estaria logado, cadastrado e com uma home só pra essa função).

 

 

Entao seria isso, por exemplo, o escoteiro postou 10 vezes, ele teria uma medalha de bronze no site dele

ele postou 20 vezes, ele teria uma medalha de prata... assim por diante.

 

Eu to quebrando a minha cabeça aqui, se alguem tiver uma ideia, sujestão por favor.

 

Agradeço desde já gente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos supor que na home desse escoteiro tenha um lugar onde vai ficar o desenho da medalha. Lá você faz uma verificação no banco de dados para saber a quantidade de vezes que o escoteiro postou no sistema. Se ele fez 10 postagem você exibi a imagem bronze.jpg, se ele fez + de 20 postagem você exibi a imagem prata.jpg ...

 

Como você faria essa verificação? Contaria a quantidade de vezes que o usuário andre de id 3 postou, através de um select na tabela 'post'.

 

Seria algo como parecido com isso.

// lugar do site onde você vai mostrar a medalha

$sql = mysql_query("SELECT * FROM post WHERE fk_id_escoteiro = 3");
$qtd = mysql_num_rows($sql);

if ($qtd >= 10) {
echo '<img src="imagens/bronze.jpg" />';
} elseif ($qtd >= 20) {
echo '<img src="imagens/prata.jpg" />';
}

 

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

André, obrigado mesmo! entendi a logica sim, e deu um rumo pra mim, só que me surgiram algumas duvidas agora:

 

Essa tabela "post" que eu vou consultar, seria a tabela por exemplo a tabela " comentando"?

 

 

e vamos dizer assim, se eu quisesse só deixar um botão, pra ele apertar e esse botão já colocasse algo no banco de dados, e eu pudesse verificar esse dado?

 

Deu pra entender? tem um botão exemplo: EU fiz a Lição! ( Estou dizendo isso, pq queria que que quando ele clicasse nesse botão, seria transferido pra outra pagina, onde ai sim ele colocaria o comentario e tudo mais, junto com o comentario de outros escoteiros).

 

Dai toda vez que ele clicar nesse botão, um dado seria enviado ao banco de dados e eu faria a verificação de quantas vezes o id_03 clicou nesse botão.

 

Obrigado pela ajuda ai...

Compartilhar este post


Link para o post
Compartilhar em outros sites

A tabela post foi apenas um exemplo, mas você pode usar a tabela que quizer.

 

Dai toda vez que ele clicar nesse botão, um dado seria enviado ao banco de dados e eu faria a verificação de quantas vezes o id_03 clicou nesse botão.

Sim, vamos supor que você tenha a página assim:

// Aqui o conteudo da página.

<a href="comentar.php?id=<?php echo $id_escoteiro;?>">Fiz a lição</a>

 

Na pagina comentar.php

<?php
if(isset($_GET['id'])) 
  $id_escoteiro = (int)$_GET['id'];

  $sql = "INSERT INTO `comentando` (`fk_id_escoteiro`) VALUES ({$id_escoteiro})";
  $qry = mysql_query($sql);
}

// Restante do codigo para ele postar o comentário.
// O qual você também pode ter uma outra tabela para armazenar os comentários
// Fica a seu critério a forma de usar
?>

 

Abraços e até mais, se tiver outras dúvidas é só postar. :joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

André valew mesmo man

 

Entendi praticamente tudo, só restou uma ultima duvida aqui, ( pelo menos até agora só ficou essa)

 

o sistema de usuarios que eu criei, cria uma area restrita, onde ela vai puxando os dados dos usuarios, pelo id em forma de sessões.

 

essa parte aqui você me deu exemplo que eu estivesse na home, do usuario id=03

 

$sql = mysql_query("SELECT * FROM post WHERE fk_id_escoteiro = 3");

$qtd = mysql_num_rows($sql);

 

como eu faço pra que ele puxe os dados do usuario em questão logado, ja que não é uma home individual né, ele puxa os dados do banco de dados, dependendo do usuario logado.

 

obrigado novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então quando o usuário loga no sistema, você cria uma session contendo o valor do id dele? Se sim, é só você inserir no lugar do '3'

 

Por exemplo:

$sql = mysql_query("SELECT * FROM post WHERE fk_id_escoteiro = ".$_SESSION['sessao_com_o_id_escoteiro']."");
$qtd = mysql_num_rows($sql); 

 

Abraços e até mais, se estiver mais dúvida posta que estou indo descansar agora mas amanhã qnd chegar na empresa eu vejo :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andre, tentei aqui e não consegui

vou passar codigo aqui

 

 

 

pagina_restrita

 

<?php

 

session_start(); // Inicia a session

include "functions.php"; // arquivo de funções.

session_checker(); // chama a função que verifica se a session iniciada da acesso à página.

 

echo "Bem vindo <strong>". $_SESSION['nome'] ." ". $_SESSION['sobrenome'] ."</strong>!<br />

Você está acessando área restrita para usuários cadastrados!

<br /><br />";

 

echo "Seu nível de usuário é <strong>". $_SESSION['nivel_usuario']."</strong>.

<br />Com esse nível, você tem permisão de acesso às

seguintes áreas: <br /><br />";

 

$sql = mysql_query("SELECT * FROM usuarios WHERE nivel_usuario = ".$_SESSION['usuario_id']."");

$qtd = mysql_num_rows($sql);

 

if ($qtd >= 2) {

echo '<img src="imagens/bronze.jpg" />';

} elseif ($qtd >= 20) {

echo '<img src="imagens/prata.jpg" />';

}

 

{

echo "<a href=\"logout.php\">Sair</a>";

 

<a href=\"comentar.php?id=<?php echo $id_escoteiro;?>">Fiz a lição</a>

 

?>

 

aparece uma mensagem, falando que o erro está no mysql_num_rows.

 

e o codigo da pagina comentario.php

ficou assim.

 

<?php

 

 

if(isset($_GET['usuario_id ']))

$id_escoteiro = (int)$_GET['usuario_id'];

 

$sql = "INSERT INTO `comentando` (`nivel_usuario`) VALUES ({$id_escoteiro})";

$qry = mysql_query($sql);

}

 

?>

 

agradeço novamente a ajuda ae man, vlw.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É porque não está executando a query, faça assim, insira um or die() para nos visualizar o erro, e depois da um echo em id_usuario para vermos se a session existe ou se possui algum valor.

 

// Imprima o valor da session da tela
echo '<pre>';
var_dump($_SESSION['usuario_id']);

// Adicione o or die()
$sql = mysql_query("SELECT * FROM usuarios WHERE nivel_usuario = ".$_SESSION['usuario_id']."") or die ('Erro: '.mysql_error());

 

Poste o que foi retornado na tela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu esse resultado de erros:

 

PHP Warning: mysql_query() [function.mysql-query]: [2002] A connection attempt failed because the connected party did not (trying to connect via tcp://localhost:3306) in E:\Domains\skyinbox.net\wwwroot\area_restrita.php on line 36 PHP Warning: mysql_query() [function.mysql-query]: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. in E:\Domains\skyinbox.net\wwwroot\area_restrita.php on line 36 PHP Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in E:\Domains\skyinbox.net\wwwroot\area_restrita.php on line 36 PHP Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in E:\Domains\skyinbox.net\wwwroot\area_restrita.php on line 37 PHP Fatal error: Maximum execution time of 60 seconds exceeded in E:\Domains\skyinbox.net\wwwroot\area_restrita.php on line 53

Compartilhar este post


Link para o post
Compartilhar em outros sites

Matheus, como meu banco de dados não é localhost, eu coloquei os dados pra conexão, e o negocio começou a funciar.

 

Ele entrou na area restrita, ou seja, ta acessando o banco de dados, se nao não entraria né?

só que ele ja mostra direto a image/bronze,jpg sem constar no nivel de acesso nem nada...

 

e quando eu clico pra ir pra pagina comentar.php que deveria contabilizar os pontos, pra que a imagem muda

a pagina não entra

 

eu acho que o erro deve ta dando na hora que eu tento adicionar os dados no compo nivel_usuario.

 

eu vou criar um novo campo, na tabela do banco de dados...

Compartilhar este post


Link para o post
Compartilhar em outros sites

você está fazendo a conexao aqui ?

 

<?php

session_start(); // Inicia a session
include "functions.php"; // arquivo de funções.
session_checker(); // chama a função que verifica se a session iniciada da acesso à página.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, tanto que eu até coloquei os dados da conexão de novo na pagina, pra ver se funciona.

 

define('BD_USER', '*****'); define('BD_PASS', '******'); define('BD_NAME', 'bancodedados1'); mysql_connect('187.84.224.37', BD_USER, BD_PASS); mysql_select_db(BD_NAME);

 

 

dai começo a dar certo, como eu falei mas ele nao modificava a imagem, fui tentar arrumar de novo

ta dando erro novamente, erro interno, http 500, vou refazer todo o processo novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

gente, o mesmo cara que criou o codigo que eu to usando no sistema de cadastro e logon de usuarios, deu uma explicação nos comentarios de como adicionar novas funçoes para as areas registradas...

 

só que o exemplo que ele deu tem alguma caractere errado, um "," ou ";"

 

alguem pode ver aqui onde está o erro, pra que eu possa testar e tentar resolver o problema.

 

o teste conta com duas paginas.

 

 

lista.php

 

<?php

 

session_start(); // Inicia a session

include "functions.php"; // arquivo de funções.

session_checker(); // chama a função que verifica se a session iniciada da acesso à página.

 

// esse começo faz a indentificação com o servidor.

 

$query = mysql_query("SELECT usuario_id, nome, sobrenome FROM usuarios ORDER BY nome,sobrenome DESC") or die(mysql_error());

 

if (mysql_num_rows($query) != "1")

{

 

while ($array = mysql_fetch_array($query))

{

 

echo "<a href=""target="_blank">".$array['nome']." ".$array['sobrenome']."</a><br />";

}

 

}

?>

 

e

 

painel.php

 

<?php

$query = mysql_query("SELECT * FROM usuarios WHERE id = ".$_GET=[id].") or die(mysql_error())";

 

if (mysql_num_rows($query) != "0")

{

 

$array = mysql_fetch_array($query)

 

echo $array['nome']." ".$array['sobrenome']."&alt;br /&gt";

echo $array['email']."&alt;br /&gt ";

/ / echo etc….

 

}

?>

 

ele ta dando um erro aqui.

 

echo "<a href="" target="_blank">".$array['nome']." ".$array['sobrenome']."</a><br />";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente, desculpa a demora pra retornar aqui, consegui solucionar os dois problemas,

tudo que vcs mandaram estava certo sim, muito obrigado mesmo, o sistema está funcionando perfeitamente.

 

todo segredo estava em pegar as sessões e colocar dentro das variaveis, dai com a variavel eu fazia tudo.

 

Muito obrigado mesmo e espero poder ajudar qualquer dia.

 

abraços.

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.