Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17737
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar e excluir item dos favoritos COOKIE e MYSQL

14-08-2011 11:14

Montei esse script abaixo que pode ser usado para quem deseja permitir que o usuário faça uma lista de itens favoritos, baseado em uma consulta MySQL.

O script funciona da seguinte forma:

É feita uma consulta comum, listando todos os itens de uma tabela. A frente de cada item, há um botão +. Se o usuário clicar, vai adicionar o id daquele item em um cookie. Posteriormente, todos os ids salvo no cookie são usados para uma consulta, sendo assim, só os ids armazenado no cookie serão usados para a consulta. Isso irá criar uma lista de favoritos, baseados nos ids.

Para testar, use em uma tabela com os campos id e nome.

<?php $dbhost="localhost"; /* servidor */ $dbuser=""; /* usuário do banco de dados */ $dbpasswd=""; /* senha do banco de dados */ $dbname=""; /* nome do banco de dados */ $conexao = @mysql_connect($dbhost, $dbuser, $dbpasswd) or die ("não foi possível a conexão, verifique os dados."); $db = @mysql_select_db($dbname) or die ("não foi possível o acesso ao banco de dados $dbname."); // LIMPANDO OS COOKIES //setcookie("cookie", "", time()+3600); // CRIAÇÃO DO COOKIE if(isset($_GET['val'])) { extract($_GET); if(!isset($_COOKIE['cookie'])) { $valor = $val."|"; setcookie("cookie", "$valor", time()+3600, "/", "localhost"); // COOKIE COM 1 HORA DE DURAÇÃO header("Location:teste.php"); } else { $valor = $_COOKIE['cookie'].$val."|"; setcookie("cookie", "$valor", time()+3600, "/", "localhost"); // COOKIE COM 1 HORA DE DURAÇÃO header("Location:teste.php"); } } // CRIAÇÃO DO COOKIE // DELETAMENTO DO COOKIE if(isset($_GET['del'])) { extract($_GET); $valor = $_COOKIE['cookie']; $limpa = str_replace($del."|", "", $valor); setcookie("cookie", "$limpa", time()+3600, "/", "localhost"); // COOKIE COM 1 HORA DE DURAÇÃO header("Location:teste.php"); } // DELETAMENTO DO COOKIE // CONSULTA BASEADA NO COOKIE $campo1 = @$_COOKIE['cookie']; $campo2 = substr($campo1,0,-1); $partes1 = explode("|", $campo2); $partes2 = implode(",", $partes1); echo "MEUS FAVORITOS<br />"; // ABAIXO VAI A CONSULTA BASEADA NO ID $Query=mysql_query("SELECT nome, id FROM suatabela WHERE id IN($partes2)"); $total = @mysql_num_rows($Query); while($Dados=@mysql_fetch_array($Query)) { extract($Dados); // OPCIONAL PARA DELETAR O ITEM DO COOKIE echo "$nome - <a href=\"teste.php?del=$id\">deletar</a><br />"; } if($total==0) { echo "<font color='red'>sem favoritos</font><br />"; } // CONSULTA BASEADA NO COOKIE ?> <br /> LISTANDO OS ITENS<br /> <?php $query2=mysql_query("SELECT nome, id FROM suatabela"); while($dados2=mysql_fetch_array($query2)) { extract($dados2); echo "<a href=\"teste.php?val=$id\">$nome +</a><br />"; } mysql_close($conexao); ?>

0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado