Page 1 of 1
top clicks
Posted: Sat Jul 06, 2013 2:31 pm
by tsalmeida
hello, I have a problem in developing a project.
on the Home screen of the project have an array of categories and within categories has several products.
need to show in a <li> most clicked items in each category.
Can anyone help?
following code from my home screen.
Code: Select all
<?php
session_start();
session_cache_expire(10);
include "/../controller/antiSqlInjection.php";
include_once ("/../model/class.dao.php");
include_once ("/../model/class.categoria.php");
include_once ("/../controller/class.categoria.php");
include_once ("/../model/class.produto.php");
include_once ("/../controller/class.produto.php");
$categoria = new Categoria();
$lista_categorias = $categoria->listar();
$produto = new Produto();
$mais_clicados = $produto->maisC();
?>
<?php
$cat = mysql_num_rows($lista_categorias);
if($cat <= 0) {
echo "<p>Nenhuma Categoria cadastrada!</p>";
} else {
WHILE ($array_categoria = mysql_fetch_assoc($lista_categorias)) {
?>
<div class="destaques-div">
<h5><?php echo (utf8_encode($array_categoria["nome_categoria"])) ?></h5>
<h1> <?php echo (utf8_encode($array_categoria["nome_categoria"])) ?></h1>
<div class="clear"></div>
<div class="descricao">
<p class="right17"><?php echo (utf8_encode($array_categoria["descricao_categoria"])) ?></p>
</div>
<div class="foto-destaque"><a href="index.php?pagina=view/<?php echo (utf8_encode($array_categoria["nome_link"])) ?>"><img src="<?php echo ($array_categoria["imagem_categoria"]) ?>" width="140" height="80"/></a></div>
</br>
<div class="clear">
</div>
<div class="destaques-div-artigos">
<h6> mais clicados</h6>
<ul class="maisartigos">
<li><p><a href="index.php?pagina=view/exibe_produto&id=" title="">Clicks:</p></a></li>
</ul>
</div>
<a href="index.php?pagina=view/exibe&idcat=<?php echo $array_categoria["id_categoria"] ?>" title="geladeira" class="leiamais">veja mais <?php echo (utf8_encode($array_categoria["nome_categoria"])) ?></a>
</div>
<?php }?>
<?php }?>
Re: top clicks
Posted: Sat Jul 06, 2013 3:22 pm
by mecha_godzilla
Hi,
What does your $mais_clicados variable contain? It would be helpful if you could explain what the output is supposed to look like, something like the following?
Category #1
-> Product #1 - 20 clicks (most clicked)
-> Product #2 - 15 clicks
-> Product #3 - 5 clicks
Category #2
-> Product #5 - 14 clicks (most clicked)
-> Product #4 - 12 clicks
-> Product #6 - 10 clicks
Without being able to see what your database queries look like or what results they return it is difficult to give any specific suggestions - your script appears to loop through the categories, but does it display the products in each category as well? If you are retrieving the categories and products in two separate queries, you would need to loop through the categories and then run a query to retrieve the products that match each category. There are ways to do this in a single query, but the query and script logic might become more complex as a result (although the performance should be better).
HTH,
Mecha Godzilla
Re: top clicks
Posted: Sat Jul 06, 2013 5:03 pm
by tsalmeida
Hi Mecha Godzilla
The variable $mais_clicados is the result of the select below. If I run this query, it shows the result of the most clicked of all categories together. also do not know how to separate the categories by select
Code: Select all
SELECT p.id_produto,p.nome,p.clicks,c.id_categoria
FROM produtos p, categorias c
WHERE p.id_categoria = c.id_categoria
AND p.status = 'A'
ORDER BY p.clicks+0 DESC LIMIT 3
The example you showed is exactly what I need
Category # 1
-> Product # 1-20 clicks (most clicked)
-> Product # 2-15 clicks
-> Product # 3-5 clicks
Category # 2
-> Product # 5-14 clicks (most clicked)
-> Product # 4-12 clicks
-> Product # 6-10 clicks
need to show that within the <li> referring to this div
Code: Select all
<div class="destaques-div-artigos">
<h6> mais clicados</h6>
<ul class="maisartigos">
<li><p><a href="#" title="">Clicks:</p></a></li>
</ul>
</div>
That part that made this showing the results correctly.
Category # 1, Category # 2
# Category 3, Category # 4 ... and so on.
Now I want to show the items within each category.
I count on your help,
Thank you very much!!
Re: top clicks
Posted: Sat Jul 06, 2013 7:46 pm
by mecha_godzilla
If you want to select a specific category, you will need to do something like this:
Code: Select all
SELECT p.id_produto,p.nome,p.clicks,c.id_categoria
FROM produtos p, categorias c
WHERE p.id_categoria = c.id_categoria
AND p.status = 'A'
AND c.id_categoria = '$some_value'
ORDER BY p.clicks+0 DESC LIMIT 3
What you could then do is move this code
Code: Select all
$produto = new Produto();
$mais_clicados = $produto->maisC();
into the categories loop like this:
Code: Select all
$categoria = new Categoria();
$lista_categorias = $categoria->listar();
while ($array_categoria = mysql_fetch_assoc($lista_categorias)) {
$some_value = $array_categoria["id_categoria"]; // this assumes that the category ID is selected in the category query
$produto = new Produto();
$mais_clicados = $produto->maisC($some_value); // this assumes that the "most clicked" query has been modified to only select results for a single category
echo '<ul>';
while ($array_mais_clicados = mysql_fetch_assoc($mais_clicados)) {
echo '<li>' . $array_mais_clicados['nome'] . '</li>';
}
echo '</ul>';
unset($produto); // unset the Produto object and free up the memory associated with it
}
Note that you will need to find a way to send the category ID to your Produto object so that it can be included in the query (I've included it as an argument in the maisC() method but this may not be appropriate for how your scripts work) and I have omitted some of your other code just to try and make things easier to understand. As I mentioned before, this code is not the most efficient way to do this because you have to run a separate query for each category, but it will be simpler to have two basic queries rather than one complicated one - you can always optimise these queries once you have your script working. In a similar way, looping through one set of results while looping through another set of results is not particular efficient, but you would have to be working with a lot of data before this started becoming a real problem.
M_G
Re: top clicks
Posted: Sat Jul 06, 2013 9:21 pm
by tsalmeida
Hello again Mecha Godzilla
I put this example to run on my project, however this presented a problem.
In this <li> tag showing the result of array_categoria and not the $ array_mais_clicados.
Example: category # 1 has the <li> showing that this category # 2 having the <li> showing that this category # 3 having the <li> showing that this category # 4, and so on lol.
and one more doubt, the query is asking to start the variable $ some_value, excuse my novice question, but how do I start it in this case?
and once again thanks for the replies
I await a return
thank you
Re: top clicks
Posted: Sun Jul 07, 2013 6:59 am
by mecha_godzilla
It would be helpful if you could post the code for your Produto class please because it will need to be updated. The script logic would work as follows:
1. Retrieve a list of all categories (saved to $lista_categorias)
2. Loop through the results of the category query, and inside the loop...
3. Assign the category ID to a variable ($some_value)
4. Instantiate a new Produto object
5. Call the maisC method of the Produto class and send it the $some_value variable (so that it can be included in the "most clicked" query)
6. The maisC method then retrieves the products for that category, ordered by "most clicked" in descending order (saved to $mais_clicados)
7. Loop through the results of the "most clicked" query, and inside the loop...
8. Output the unordered list tags which display the products and continue looping until all three products have been output
9. Return to step #2 for the next category.
At this stage, it would be better to make sure your classes and queries are working correctly first before trying to generate the correct HTML code - the second problem (HTML output) is reliant on the first problem (retrieving the correct results) being solved first.
M_G
Re: top clicks
Posted: Sun Jul 07, 2013 12:18 pm
by tsalmeida
Hi Mecha Godzila,
follows the codes
class model produto.
Code: Select all
<?php
class ProdutoModel {
//Declaração dos atributos
private $id_produto;
private $id_categoria;
private $nome;
private $marca;
private $modelo;
private $descricao;
private $foto;
private $status;
private $nota;
private $clicks;
//Método Construtor
public function __construct() {}
//Encapsulamento
public function setIdProduto($id_produto) {
$this->id_produto = $id_produto;
}
public function setCategoria($id_categoria) {
$this->id_categoria = $id_categoria;
}
public function setNome($nome) {
$this->nome = $nome;
}
public function setMarca($marca) {
$this->marca = $marca;
}
public function setModelo($modelo) {
$this->modelo = $modelo;
}
public function setDescricao($descricao) {
$this->descricao = $descricao;
}
public function setStatus($status) {
$this->status = $status;
}
public function setNota($nota) {
$this->nota = $nota;
}
public function setFoto($foto) {
$this->foto = $foto;
}
public function setClicks($clicks) {
$this->clicks = $clicks;
}
public function getIdProduto() {
return $this->id_produto;
}
public function getNome() {
return $this->nome;
}
public function getCategoria() {
return $this->id_categoria;
}
public function getFoto() {
return $this->foto;
}
public function getMarca() {
return $this->marca;
}
public function getModelo() {
return $this->modelo;
}
public function getNota() {
return $this->nota;
}
public function getDescricao() {
return $this->descricao;
}
public function getStatus() {
return $this->status;
}
public function getClicks() {
return $this->clicks;
}
#Métodos de comunicação com banco de dados
//Método que inclui efetivamente os valores no banco de dados
public function incluirProduto() {
//Comando SQL que será executado no banco de dados
$query = "INSERT INTO produtos(
id_categoria,
nome,
marca,
modelo,
descricao,
foto,
status,
nota,
clicks)
VALUES (
'".$this->getCategoria()."',
'".$this->getNome()."',
'".$this->getMarca()."',
'".$this->getModelo()."',
'".$this->getDescricao()."',
'".$this->getFoto()."',
'".$this->getStatus()."',
nota = 0,clicks =0)";
//Executa a Query montada acima e armazena o retorno informado pelo banco
$resultado = DAO::abreConexao()->runQuery($query);
//Retorna o valor encontrado para quem fez a solicitação
return $resultado;
}
//Método que altera efetivamente os valores no banco de dados
public function alterarProduto() {
//Comando SQL que será executado no banco de dados
$query = "UPDATE produto SET
id_categoria = '".$this->getCategoria()."',
nome = '".$this->getNome()."',
marca = '".$this->getMarca()."',
modelo = '".$this->getModelo()."',
descricao = '".$this->getDescricao()."',
foto = '".$this->getFoto()."',
status = '".$this->getStatus()."',
nota = '".$this->getNota()."'
WHERE
id_produto = '".$this->getIdProduto()."'";
//Executa a Query montada acima e armazena o retorno informado pelo banco
$resultado = DAO::abreConexao()->runQuery($query);
//Retorna o valor encontrado para quem fez a solicitação
return $resultado;
}
public function alterarClicks() {
//Comando SQL que será executado no banco de dados
$ref=(int)$_GET['id'];
$query = "UPDATE produtos SET clicks = clicks + 1
WHERE id_produto = $ref";;
//Executa a Query montada acima e armazena o retorno informado pelo banco
$resultado = DAO::abreConexao()->runQuery($query);
//Retorna o valor encontrado para quem fez a solicitação
return $resultado;
}
//Método que traz uma relação com todos os registros cadastrados no banco
public function maisClicados() {
//Comando SQL que será executado no banco de dados
//$categoria=(int)$_GET['categoria'];
$query = "SELECT p.id_produto,p.nome,p.clicks,c.id_categoria
FROM produtos p, categorias c
WHERE p.id_categoria = c.id_categoria
AND p.STATUS = 'A'
AND c.id_categoria = '$clicks'
ORDER BY p.clicks+0 DESC LIMIT 3";
//AND id_categoria = $ref";
//Executa a Query montada acima e armazena o retorno informado pelo banco
$resultado = DAO::abreConexao()->runQuery($query);
//Retorna o valor encontrado para quem fez a solicitação
return $resultado;
}
public function listarProdutos() {
//Comando SQL que será executado no banco de dados
$ref=(int)$_GET['idcat'];
$query = "SELECT p.*,
c.nome_categoria
FROM produtos p, categorias c
WHERE c.id_categoria = p.id_categoria
AND p.status = 'A'
AND p.id_categoria = $ref";
//$sql = "SELECT date_format(DATA, '%e/%c/%Y') AS data_br from tabela";//AND c.id_categoria = '".$this->getCategoria()."'";
//Executa a Query montada acima e armazena o retorno informado pelo banco
$resultado = DAO::abreConexao()->runQuery($query);
//Retorna o valor encontrado para quem fez a solicitação
return $resultado;
}
public function listarTProdutos() {
//Comando SQL que será executado no banco de dados
$query = "SELECT produto *
FROM produto
INNER JOIN categorias
ON categorias.id_categoria = produto.id_categoria
INNER JOIN clientes
ON clientes.id_cliente = produto.id_cliente
order by id_produto ";
$resultado = DAO::abreConexao()->runQuery($query);
//Retorna o valor encontrado para quem fez a solicitação
return $resultado;
}
//Método que traz uma relação com todos os registros cadastrados no banco
public function listarExibicaoProdutos() {
$ref=(int)$_GET['id'];
//Comando SQL que será executado no banco de dados
$query = "SELECT *
FROM produtos
WHERE
id_produto = $ref";
//Executa a Query montada acima e armazena o retorno informado pelo banco
$resultado = DAO::abreConexao()->runQuery($query);
//Retorna o valor encontrado para quem fez a solicitação
return $resultado;
}
//Método que traz uma relação com apenas 1 registro do banco localizado através do codCliente.
public function buscarProduto() {
//Comando SQL que será executado no banco de dados
$query = "SELECT * FROM produtos
WHERE id_produto = ".$this->getIdProduto();
//Executa a Query montada acima e armazena o retorno informado pelo banco
$resultado = DAO::abreConexao()->runQuery($query);
//Retorna o valor encontrado para quem fez a solicitação
return $resultado;
}
public function excluirProduto() {
//Comando SQL que será executado no banco de dados
$query = "DELETE FROM produtos WHERE id_produto = ".$this->getIdProduto();
//Executa a Query montada acima e armazena o retorno informado pelo banco
$resultado = DAO::abreConexao()->runQuery($query);
//Retorna o valor encontrado para quem fez a solicitação
return $resultado;
}
public function paginacaoProduto($paginaatual = 1, $totalregistrospg = 7){
//$totalregistrospg é o total de registros por página
$paginaatual = ($paginaatual <= 0) ? 1 : $paginaatual;
$inicial = ($paginaatual-1) * $totalregistrospg;
// Faz o Select pegando o registro inicial até a quantidade de registros para página
$query = "SELECT p.*, c.nome_categoria
FROM produtos p, categorias c
WHERE c.id_categoria = p.id_categoria
order by p.id_produto
LIMIT $inicial, $totalregistrospg";
$resultado = DAO::abreConexao()->runQuery($query);
return $resultado;
}
public function totalProduto(){
$query = "SELECT count(id_produto) as total FROM produtos";
$resultado = DAO::abreConexao()->runQuery($query);
$total = mysql_fetch_assoc($resultado);
return $total["total"]; //total é o "as total" que foi feito no select
}
public function paginacaoProdutoPendente($paginaatual = 1, $totalregistrospg = 7){
//$totalregistrospg é o total de registros por página
$paginaatual = ($paginaatual <= 0) ? 1 : $paginaatual;
$inicial = ($paginaatual-1) * $totalregistrospg;
// Faz o Select pegando o registro inicial até a quantidade de registros para página
$query = "SELECT produtos.*,
categorias.categoria as nome_categoria
FROM produtos
INNER JOIN categorias
ON categorias.id_categoria = produtos.id_categoria
WHERE status = 'I'
order by data_cadastro
LIMIT $inicial, $totalregistrospg";
$resultado = DAO::abreConexao()->runQuery($query);
return $resultado;
}
public function paginacaoMeusProdutos($paginaatual = 1, $totalregistrospg = 7){
session_start();
$user = $_SESSION["usuario_id"];
//$totalregistrospg é o total de registros por página
$paginaatual = ($paginaatual <= 0) ? 1 : $paginaatual;
$inicial = ($paginaatual-1) * $totalregistrospg;
// Faz o Select pegando o registro inicial até a quantidade de registros para página
$query = "SELECT produtos.*,
categorias.categoria as nome_categoria
FROM produtos
INNER JOIN categorias
ON categorias.id_categoria = produtos.id_categoria
WHERE id_cliente = $user
order by data_cadastro
LIMIT $inicial, $totalregistrospg";
$resultado = DAO::abreConexao()->runQuery($query);
return $resultado;
}
public function totalMeusProdutos(){
$query = "SELECT count(id_produto) as total FROM produtos";
$resultado = DAO::abreConexao()->runQuery($query);
$total = mysql_fetch_assoc($resultado);
return $total["total"]; //total é o "as total" que foi feito no select
}
}
?>
class controller produto
Code: Select all
<?php
//Cria a classe categoria que herda caracteristicas da tabela CategoriaModel
class Produto extends ProdutoModel {
//Método Construtor
public function __construct() {}
#Métodos que solicitam informações da Model
//Método de inclusão de dados
public function incluir() {
//Formata a data no padrão do banco de dados
//$array_data_cadastro = explode("/", $_POST["data_cadastro"]);
//$data_formatada = $array_data_cadastro[2]."-".$array_data_cadastro[1]."-".$array_data_cadastro[0];
$nome_arquivo = $_FILES["foto"]["name"];
$nome_temp = $_FILES["foto"]["tmp_name"];
//Pasta
$diretorio = "view/images/produtos/".$nome_arquivo;
$diretorio_mover = "../Qualamelhormarca/view/images/produtos/".$nome_arquivo;
$mover = move_uploaded_file($nome_temp, $diretorio_mover);
if ($mover == true) {
echo "Upload feito com sucesso";
} else {
echo "ERROR: Erro ao fazer Upload";
}
// Passa para os atributos os valores que foram submetidos através de post
// Exceto o código pois é um campo auto-incremental.
$this->setCategoria(utf8_decode($_POST["id_categoria"]));
$this->setFoto($diretorio);
$this->setNome(utf8_decode($_POST["nome"]));
$this->setMarca(utf8_decode($_POST["marca"]));
$this->setModelo(utf8_decode($_POST["modelo"]));
$this->setDescricao(utf8_decode($_POST["descricao"]));
//$this->setNota($_POST["nota"]);
$this->setStatus(utf8_decode($_POST["status"]));
//$this->setClicks(utf8_decode($_POST["clicks"]));
//Verifica qual foi o retorno da inclusão
$resultado = $this->incluirProduto();
//Retorna o valor encontrado TRUE ou FALSE
return $resultado;
}
//Método de alteração de dados
public function alterar() {
// Passa para os atributos os valores que foram submetidos através de post
// Exceto o código pois é um campo auto-incremental.
$this->setIdProduto($_POST["id_produto"]);
$this->setCategoria(utf8_decode($_POST["id_categoria"]));
$this->setNome(utf8_decode($POST["nome"]));
$this->setMarca(utf8_decode($_POST["marca"]));
$this->setModelo(utf8_decode($_POST["modelo"]));
$this->setDescricao(utf8_decode($_POST["descricao"]));
$this->setNota($_POST["nota"]);
$this->setStatus(utf8_decode($_POST["status"]));
//Verifica qual foi o retorno da alteração
$resultado = $this->alterarProduto();
//Retorna o valor encontrado TRUE ou FALSE
return $resultado;
}
//alteração de clicks
public function alterarC() {
// Passa para os atributos os valores que foram submetidos através de post
// Exceto o código pois é um campo auto-incremental.
//$this->setIdProduto($_POST["id_produto"]);
//$this->setClicks(utf8_decode($_POST["clicks"]));
//Verifica qual foi o retorno da alteração
$resultado = $this->alterarClicks();
//Retorna o valor encontrado TRUE ou FALSE
return $resultado;
}
//Método de listagem
public function listar() {
//Retorna a coleção de dados encontradas
return $this->listarProdutos();
}
//Método de listagem
public function maisC() {
//Retorna a coleção de dados encontradas
return $this->maisClicados();
}
public function listarE() {
//Retorna a coleção de dados encontradas
return $this->listarExibicaoProdutos();
}
//Método que localiza apenas 1 registro através do código
public function buscar($id_produto) {
//Seta o valor para o atributo código
$this->setIdProduto($id_produto);
//Buscam os dados e já o converte em um Array Associativo
$dados_produto = mysql_fetch_assoc($this->buscarProduto());
//Alimenta os outros atributos da classe com as informações encontradas
$this->setCategoria($dados_produto["id_categoria"]);
$this->setFoto($dados_produto["foto"]);
$this->setNome($dados_produto["nome"]);
$this->setMarca($dados_produto["marca"]);
$this->setModelo($dados_produto["modelo"]);
$this->setNota($dados_produto["nota"]);
$this->setDescricao($dados_produto["descricao"]);
$this->setStatus($dados_produto["status"]);
$this->setClicks($dados_produto["clicks"]);
}
public function excluir($id_produto) {
$this->setIdProduto($id_produto);
return $this->excluirProduto();
}
}
?>
im brazilian, so my codes is in portuguese ...
Re: top clicks
Posted: Sun Jul 07, 2013 4:13 pm
by mecha_godzilla
tsalmeida wrote:im brazilian, so my codes is in portuguese ...
I did guess that - anyone posting to the forum at 4am BST was either in Brazil or staying up very late in Portugal
In your ProdutoModel class, you could revise the maisClicados method like this:
Code: Select all
public function maisClicados($categoria_id) {
//Comando SQL que será executado no banco de dados
//$categoria=(int)$_GET['categoria'];
$query = "SELECT p.id_produto,p.nome,p.clicks,c.id_categoria
FROM produtos p, categorias c
WHERE p.id_categoria = c.id_categoria
AND p.STATUS = 'A'
AND p.id_categoria = '$categoria_id'
ORDER BY p.clicks+0 DESC LIMIT 3";
//Executa a Query montada acima e armazena o retorno informado pelo banco
$resultado = DAO::abreConexao()->runQuery($query);
//Retorna o valor encontrado para quem fez a solicitação
return $resultado;
}
You would also need to update the maisC method in the Produto class:
Code: Select all
//Método de listagem
public function maisC($categoria_id) {
//Retorna a coleção de dados encontradas
return $this->maisClicados($categoria_id);
}
When you are looping through the categories, you then just need to save the category ID to a variable and send it to the maisC method:
Code: Select all
$categoria = new Categoria();
$lista_categorias = $categoria->listar();
while ($array_categoria = mysql_fetch_assoc($lista_categorias)) {
$categoria_id = $array_categoria["id_categoria"]; // this assumes that the category ID is selected in the category query
$produto = new Produto();
$mais_clicados = $produto->maisC($categoria_id);
echo '<div class="destaques-div-artigos">';
echo '<h6> mais clicados</h6>';
echo '<ul class="maisartigos">';
while ($array_mais_clicados = mysql_fetch_assoc($mais_clicados)) {
echo '<li>' . $array_mais_clicados['nome'] . '</li>';
}
echo '</ul>';
echo '</div>';
unset($produto); // unset the Produto object and free up the memory associated with it
}
M_G
Re: top clicks
Posted: Sun Jul 07, 2013 7:22 pm
by tsalmeida
Hi Mecha
you are helping me a lot ...and I really appreciate your help
this code that you gave me worked at 95%, still having problem in <li> for the $ array_categoria.
I put a picture below ...check it please
http://imageshack.us/photo/my-images/221/h49j.jpg/
category # 2 should appear next to the category # 1 and not in <li>.
Can you help me this once please?
Thank you.
Re: top clicks
Posted: Sun Jul 07, 2013 8:02 pm
by mecha_godzilla
I'll take a look at this later on today if no one else can help straightaway - it's 2am here so I'm signing off for the evening
The best way to solve this kind of problem is to look at the page source in your browser after the page has been generated. It would be helpful if you could post the HTML page source here as it should be obvious what's happening - markup errors usually occur in loops when the closing tags are not set correctly. Based on your screenshot, it looks like the list of "most clicked" products should be floated to the right of the category number. The fact that the next category is nested inside the "most clicked" products layer of the previous category would suggest that either the divs are not being closed properly or not being cleared (so you might also need to look at your CSS settings if the problem is not with the markup).
M_G
Re: top clicks
Posted: Sun Jul 07, 2013 9:52 pm
by tsalmeida
haha good night, I await your reply tomorrow
I do not think the problem is in css, for in array_categoria, I do a SELECT * in the category table, this table has a column id_categoria, and how the help u gave me, it is set to the variable $categoria_id = $array_categoria and $categoria_id is = column id_categoria.
The first while loop not starting this again
if I take the code that u passed it correctly shows the categories that have registered using the $array_categorias
home
Code: Select all
<?php
session_start();
session_cache_expire(10);
include "/../controller/antiSqlInjection.php";
include_once ("/../model/class.dao.php");
include_once ("/../model/class.categoria.php");
include_once ("/../controller/class.categoria.php");
include_once ("/../model/class.produto.php");
include_once ("/../controller/class.produto.php");
$categoria = new Categoria();
$lista_categorias = $categoria->listar();
?>
<?php
//$cat = mysql_num_rows($lista_categorias);
// if($cat <= 0) {
// echo "<p>Nenhuma Categoria cadastrada!</p>";
// } else {
WHILE ($array_categoria = mysql_fetch_assoc($lista_categorias)) {
?>
<div class="destaques-div">
<h5><?php echo (utf8_encode($array_categoria["nome_categoria"])) ?></h5>
<h1> <?php echo (utf8_encode($array_categoria["nome_categoria"])) ?></h1>
<div class="clear"></div>
<div class="descricao">
<p class="right17"><?php echo (utf8_encode($array_categoria["descricao_categoria"])) ?></p>
</div>
<div class="foto-destaque"><a href="index.php?pagina=view/exibe&idcat=<?php echo $array_categoria["id_categoria"]?>"><img src="<?php echo ($array_categoria["imagem_categoria"]) ?>" width="140" height="80"/></a></div>
</br>
<div class="clear">
</div>
<div class="destaques-div-artigos">
<h6> mais clicados</h6>
<?php echo '<ul>';
$categoria_id = $array_categoria["id_categoria"]; // this assumes that the category ID is selected in the category query
$produto = new Produto();
$mais_clicados = $produto->maisC($categoria_id); // this assumes that the "most clicked" query has been modified to only select results for a single category
while ($array_mais_clicados = mysql_fetch_assoc($mais_clicados)) {
echo '<li>' . $array_mais_clicados['nome'] . ' Clicks ' . $array_mais_clicados['clicks'] . '</li>';
}}
echo '</ul>';
//unset($produto); // unset the Produto object and free up the memory associated with it
?>
</div>
<a href="index.php?pagina=view/exibe&idcat=<?php echo $array_categoria["id_categoria"] ?>" title="geladeira" class="leiamais">veja mais <?php echo (utf8_encode($array_categoria["nome_categoria"])) ?></a>
</div>
This page is called through the index page
Code: Select all
<?phpsession_start();
session_cache_expire(10);?>
<?php include"../view/header.php"?>
<div class="esq-div">
<?php
foreach ($_REQUEST as $___opt => $___val){
$$___opt = $___val;
}
if(empty($pagina)){
include("home.php");
}
elseif(substr($pagina, 0, 4)=='http' or substr($pagina, 0, 1)=="/" or substr($pagina, 0, 1)==".")
{
echo'<br><font face=arial size:11px><br><b> A página não existe.</b> <br>Por favor selecione uma pagina no menu principal.</font>';
}
else{
include("$pagina.php");
}
?>
</div><!--conteudo-->
<?php include"../view/sidebar.php" ?>
<?php include"../view/rodape.php" ?>
Re: top clicks
Posted: Mon Jul 08, 2013 3:21 pm
by mecha_godzilla
The code looks correct as far as I can tell, so it would be helpful if you could post the HTML code from your browser's "view source" option after your page has been output, along with the CSS - based on how your screenshot looks, I still think this might be a CSS problem. Is the category description supposed to appear to the right of the category image, with the "mais clicados" links underneath?
M_G
Re: top clicks
Posted: Mon Jul 08, 2013 9:05 pm
by tsalmeida
Hi Mecha
ok ok ok u were right, actually, checking the source code of the page, I noticed that a div was not being closed.
thank you so much.
I am Brazilian and I will try to help the forum how to get, I'll pass on to my fellow programmers also help.
if my English is not very good because sometimes I use google translator rofl