Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Em PHP, como eu faria para listar os produtos visitados no meu e-commerce ?
Eu não quero o código e sim o que é melhor usar no php.
Grato pela atenção galera.
Seria todos os produtos visitados pelo cliente
Então cria uma nova tabela relacionando o id do cliente com o id do produto. Se você quiser montar um daqueles "últimos vistos" pode usar um cookie apenas.
Brother faz o seguinte, quando o usuário faz o login vc provavelmente criou uma session ou um cookie procura salvar o id do usuário, se vc ainda não o fez, neles e ai vc faz o seguinte código e coloca na página de visualização de produtos, é basicamente o que o nosso amigo ESerra falo acima, porém eu vou fazer um código de exemplo pra vc:
Cria uma tabela que tenha os seguintes campos:
Tabela: "Visitados"
visitados_id
user_id
produto_id
todos os campos são do tipo INT
Ai vc faz o seguinte código:
//PEGA O ID DO USUÁRIO
$id_user = $_SESSION['id_usuario'];
//PEGA O ID DO PRODUTO, NÃO SEI O Q VC ESTA USANDO SE É FETCH_ASSOC OU FETCH_ARRAY, ETC.
$id_produto = $id_produto
//INSERE NO BANCO DE DADOS
$sql = mysql_query("INSERT INTO visitados (user_id, produto_id) VALUES ('$user_id', '$produto_id')");
Ai vc vai precisar de uma query um pouco mais composta para poder puxar estes dados depois, digamos que os seus produtos estejam cadastrados em uma tabela chamada "produtos" que possui 2 campos 'produto_id' e 'produto_nome', o seu query vai ficar assim:
//PEGA O ID DO VISITANTE ATRAVÉS DA SESSION OU COOKIE
$id_user = $_SESSION['id_user'];
//BUSCA NO BANCO
$buscar = mysql_query("SELECT v.visitados_id, v.produto_id, v.user_id, p.produto_id, p.produto_nome FROM visitados AS v INNER JOIN produtos AS p ON v.produto_id = p.produto_id WHERE user_id = '$id_user'");
//AI VC FAZ O RESTO COM O FETCH_ASSOC OU FETCH_ARRAY
Ai vc consegue exibir o nome dos produtos visitados direitinho ;)
Espero ter ajudado, abraço
Perfeito.
Mas em questão de performance, se o cliente visitou 40 produtos ou mais, usando o banco de dados não ficaria lento ?
Bom ai seria questão de vc limitar os produtos que aparecem em todas as páginas com um LIMIT tipo limitar os 5 últimos e colocar um link para uma página com todos os produtos visitados pelo usuário, ai vc trabalhar com uma paginação de resultados ;)
Depende do que você realmente quer, se quiser saber apenas os mais visitados, adicione uma coluna na própria tabela dos produtos e incremente ela conforme ocorre a visualização do produto. Se você quiser fazer algum tipo de data mining nisto, ai já é mais interessante ter outra tabela para que você possar guardar os dados que serão refinados posteriormente.