Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda apresentação de categorias


joanita

Pergunta

olá a todos, preciso de ajuda... fiz um script para inserir/remover/editar/listar produtos nas respetivas categorias e subcategorias, mas não estou a gostar do visual e sinto ainda a falta de algumas opções que não estou a saber fazer...

Gostava que em vez de aparecer como esta a aparecer a lista de produtos um abaixo do outro, aparecesse antes como nas lojas online, um menu das categorias existentes, onde á frente de cada uma aparecia o numero de produtos na categoria e desse para clicar e ver apenas os produtos dessa categoria ou subcategoria...

o meu DB esta assim:

  • codigo_cat
  • codigo_sub
  • codigo_produto
  • nome_cat
  • nome_sub
  • nome_produto
  • descricao_produto
  • extras_produto
  • preco_produto

 

o codigo php é o seguinte:

<?
//INICIA A SESSÃO
@ob_start();
session_start();

//EXECUTA A LIGAÇÃO À BASE DE DADOS
require_once("conecta.php");

//MOSTRA A BARRA DE BOAS VINDAS E SAIR AO UTILIZADOR
include("boasvindas.php");
?>

<html>
<head>
<title></title>
</head>
<body>
<h2 align="center">Lista de Produtos</h2>

<center>
<table width='50%' cellpading='8' cellspacing='8' bgcolor='#f0f0f0'><tr><td>

<?
//COMANDO SQL PARA SELECIONAR TODOS OS REGISTOS DA TABELA
$sql1="SELECT * FROM produtos";

//EXECUTA O COMANDO ACIMA
$res=mysql_query($sql1);

//MOSTRA UM REGISTO DE CADA VEZ
while($registo=mysql_fetch_row($res)){
$codigo_cat=$registo[0];
$codigo_sub=$registo[1];
$codigo_produto=$registo[2];
$nome_cat=$registo[3];
$nome_sub=$registo[4];
$nome_produto=$registo[5];
$descricao_produto=$registo[6];
$extras_produto=$registo[7];
$preco_produto=number_format($registo[8],2,",",",");

//MOSTRA OS REGISTOS ORDENADOS 1 a 1
echo "<center><table width='100%' border='0' cellpading='8' cellspacing='0' bgcolor='#f0f0f0'><tr bgcolor='#daeaf0'><td align='right'><font

color='#666666'>Categoria: </font></td><td><i><font face='arial' color='orange'> »</font><font face='arial' color='#475222'> $nome_cat <font

face='arial' color='orange'> »</font> $nome_sub </font></i></td></tr>";
echo "<tr><td align='right'><font color='#666666'>Produto: </font></td><td align='left'>$nome_produto</td></tr>";
echo "<tr><td align='right'><font color='#666666'>Código Ref: </font></td><td align='left'>$codigo_produto</td></tr>";
echo "<tr bgcolor='#f8f8f8'><td width='100' align='right'><font color='#666666'>Extras: </font></td><td align='left'>

$extras_produto</td></tr>";
echo "<tr><td width='100' align='right'><font color='#666666'>Preço: </font></td width='100'><td>$preco_produto €</td></tr></table><hr

color='#93aeb8' size='1' width='100%'>";
}

//FECHA A LIGAÇÃO
function closeConn($ligacao){
    mysql_close($ligacao);
}
?>

</td></tr></table>
<p><a href="menu.php"><button type="button">VOLTAR</button></a></p>
</body>
</html>

Editado por joanita
Link para o comentário
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

  • 0

Se quiser contar quantos produtos há em cada categoria, use a função COUNT da SQL. O problema é que isso vai causar uma grande sobrecarga, conforme houver mais e mais produtos e categorias. Se for um projeto só pra aprender, sem problemas. Se for um projeto sério, recomendo deixar isso de fora. As grandes empresas usam servidores de busca, como Solr e ElasticSearch, que oferecem esse recurso facilmente

Outra dica: funções mysql_* estão obsoletas desde o PHP 5.5  e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://rberaldo.com.br/mysql-obsoleto-php/

 

 

 

 

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

hhhh obrigado Beraldo, já fiz download do teu pdf a explicar o mysqli, vou checar assim que tenha algum tempo livre pois desconheço completamente, o servidor onde tenho alojamento usa a versao MySQL 5.6 não sei se serve...

Quanto à minha duvida fiquei na mesma... gostaria mesmo de poder colocar o código a listar os produtos por categoria em vez de mostrar todos um abaixo do outro, pois se forem muitos fica confuso achar o produto desejado :( gostava que fosse como no teu blog, o menu categorias que mostras todas e quantos dentro de cada uma.

Editado por joanita
Link para o comentário
Compartilhar em outros sites

  • 0

Oi Joanita!

Assim que atualizar o modo de comunicação com o banco, poste seu script novamente pra gente te ajudar, beleza?

Mas sendo realmente uma grande aplicação, melhor seguir os sábios conselhos do Beraldo e usar um servidor de busca.

Link para o comentário
Compartilhar em outros sites

  • 0

hhhhhhh... penso que já esta atualizado... :/

 

 

<?
//INICIA A SESSÃO
@ob_start();
session_start();

//EXECUTA A LIGAÇÃO À BASE DE DADOS
require_once("conecta.php");

//MOSTRA A BARRA DE BOAS VINDAS E SAIR AO UTILIZADOR
include("boasvindas.php");
?>

<html>
<head>
<title>Powered by: RGAC</title>
</head>
<body>
<h2 align="center">Lista de Produtos</h2>
<center>
<table width='50%' cellpading='8' cellspacing='8' bgcolor='#f0f0f0'><tr><td>
<?
//COMANDO SQL PARA SELECIONAR TODOS OS REGISTOS DA TABELA
$sql1="SELECT * FROM produtos";

//EXECUTA O COMANDO ACIMA
$res=mysqli_query($ligacao, $sql1);

//MOSTRA UM REGISTO DE CADA VEZ
while($registo=mysql_fetch_row($res)){
$codigo=$registo[0];
$nome=$registo[1];
$descricao=$registo[2];
$extras=$registo[3];
$preço=number_format($registo[4],2,",",",");

//MOSTRA OS REGISTOS ORDENADOS 1 a 1
echo "<center><table width='100%' border='0' cellpading='4' cellspacing='0' bgcolor='#f0f0f0'><tr bgcolor='#daeaf0'><td align='right'><font color='#666666'>Código: </font></td><td>$codigo</td></tr>";
echo "<tr bgcolor='#f8f8f8'><td width='100' align='right'><font color='#666666'>Nome: </font></td><td>$nome</td></tr>";
echo "<tr><td width='100' align='right'><font color='#666666'>Descrição: </font></td><td>$descricao</td></tr>";
echo "<tr bgcolor='#f8f8f8'><td width='100' align='right'><font color='#666666'>Extras: </font></td><td>$extras</td></tr>";
echo "<tr><td width='100' align='right'><font color='#666666'>Preço: </font></td><td>$preço €</td></tr></table><hr color='#93aeb8' size='1' width='100%'>";
}

//FECHA A LIGAÇÃO
function closeConn($ligacao){
    mysqli_close($ligacao);
}
?>

</td></tr></table>
<p><a href="menu.php"><button type="button">VOLTAR</button></a></p>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

  • 0

Olá!

Envie por gentileza os INSERTS de uns 4 produtos pra gente ver como fica a exibição.

E o mysql_fetch_row() tá fora de contexto. Não pertence à extensão mysqli;

Desde 2010 a w3schools, mantenedora do HTML, recomenda não usar mais a tag <center>. Remova!

tagCenter.JPG

Editado por lowys
Link para o comentário
Compartilhar em outros sites

  • 0

hhhh... vai dar-me muitas dores de cabeça conseguir meter tudo a funcionar :( ando à meses a tentar mas não sou esperta em PHP

(1, 1, 1, 'cat 1', 'sub 1', 'produto 1', 'descricao 1 ', 'extras 1', 10),
(2, 2, 2, 'cat 2', 'sub 2', 'produto 2', 'descrição 2', ' extras 2', 20);

Link para o comentário
Compartilhar em outros sites

  • 0

ok deu erro... Fatal error: Call to undefined method mysqli_result::fetch_all() in /home/rpublici/public_html/loja/listar.php on line 33

...alias, vou tentar explicar melhor a minha ideia e com a ajuda de quem sabe tentar começar tudo desde o inicio novamente (desculpa o trabalho que estou dar, infelizmente ninguém nasce ensinado e eu aprendo vendo e tentando depois alterar etc. Prometo manter no projecto um SPECIAL TANKS dedicado a ti :) .

  • Queria que a pagina index.php tivesse um select que permitisse escolher entre ADMINISTRADOR ou UTILIZADOR e abaixo tivesse os inputs que dessem para inserir um "user" e "pass" e um botão que permitisse adicionar novo utilizador. Deveria permitir o acesso a diversos ADMINISTRADORES e(ou) UTILIZADORES (que tivesses feito o registo através de um formulário ao clicar no botão "Adicionar novo Utilizador") e estivessem registados na DB.
  • em seguida caso o "user e pass" estivessem correctos, redireccionaria para as respectivas paginas, o Backoffice dos ADMINISTRADORES com o menú (incluir / apagar / editar / listar produtos) ou UTILIZADOR que exibiria a pagina principal da loja onde devia ter, no lado esquerdo um menú que mostrava as "categorias", "Subcategorias (caso existissem) e o numero de Produtos em cada uma... e do lado direito exibia uma lista dos últimos 10 produtos adicionados. Ao clicar nas categorias do menu à esquerda, exibia à direita a lista de produtos inserida nela.

basicamente é essa a ideia BASE da loja (penso que de qualquer loja).

Para já serve apenas para visualizar produtos inseridos ou inserir produtos... mais ou menos como um software que permita criar e gerir uma lista de produtos acessivel a todos... claro que gostaria tambem de mais tarde colocar a possibilidade de adicionar a um carrinho de compras e efectuar outras tarefas, mas isso não seria para esta fase para não baralhar.

gostava de começar do zero com a ajuda de quem sabe! ajuda-me?!

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

Olá!

Estranho que tenha dado erro...
Aqui, funcionou perfeitamente.

Qual é a versão de php que você está usando aí?

As linguagens de programação que serão usadas em seu projeto são vivas e estão em constante evolução. Algumas coisas ficam obsoletas e os mantenedores das linguagens recomendam fortemente que não as usemos mais, para evitar quaisquer tipos de falhas ou inconveniências em geral.... Você estava usando código de 15 ou mais anos atrás. O que estamos fazendo até agora é apenas adequar o seu script para que ele fique mais próximo da realidade atual.

E a partir daí, podermos trabalhar na idéia prosposta no seu tópico:  "Ajuda apresentação de categorias"

Você quer manter o foco na sugestão do tópico para apresentação de categorias?

 

Link para o comentário
Compartilhar em outros sites

  • 0

visto que so agora estou a aprender a trabalhar nessas novas atualizacoes de codigo, é melhor começar do zero mesmo a criar o que propus. sou muito boa em design, isso é a minha vida, programaçao é algo que gosto mas como não acompanho regularrmente caé em desuso! dai ser melhor começar do zero novamente, mas com ajuda de alguém que percebe mesmo disso :) obrigado pela paciencia lowys!

não faço ideia a versao, no phpmyadmin aparece isto:

Servidor de base de dados

  • Servidor: Localhost via UNIX socket
  • Tipo de servidor: MySQL
  • Versão do servidor: 5.5.46-cll - MySQL Community Server (GPL)
  • Versão do protocolo: 10
  • Conjunto de caracteres do servidor: UTF-8 Unicode (utf8)

Servidor web

  • cpsrvd 11.52.1.2
  • Versão do cliente de base de dados: libmysql - 5.1.73
  • Extensão de PHP: mysqli Documentação

phpMyAdmin

  • Informação de Versão: 4.0.10.7, última versão estável: 4.5.2
Link para o comentário
Compartilhar em outros sites

  • 0

ola :) não eu prefiro tratar isso conforme se for criando o cogido, ex: cria-se o form para enviar, em seguida eu altero para o visual final. é que depois vai sempre aparecer alterações e pode já não ficar bem

 

Editado por joanita
Link para o comentário
Compartilhar em outros sites

  • 0

basicamente o resumo seria como descrevi acima:

  • Queria que a pagina index.php tivesse um select que permitisse escolher entre ADMINISTRADOR ou UTILIZADOR e abaixo tivesse os inputs que dessem para inserir um "user" e "pass" e um botão que permitisse adicionar novo utilizador. Deveria permitir o acesso a diversos ADMINISTRADORES e(ou) UTILIZADORES (que tivesses feito o registo através de um formulário ao clicar no botão "Adicionar novo Utilizador") e estivessem registados na DB.
  • em seguida caso o "user e pass" estivessem correctos, redireccionaria para as respectivas paginas, o Backoffice dos ADMINISTRADORES com o menú (incluir / apagar / editar / listar produtos) ou UTILIZADOR que exibiria a pagina principal da loja onde devia ter, no lado esquerdo um menú que mostrava as "categorias", "Subcategorias (caso existissem) e o numero de Produtos em cada uma... e do lado direito exibia uma lista dos últimos 10 produtos adicionados. Ao clicar nas categorias do menu à esquerda, exibia à direita a lista de produtos inserida nela.

 

imagina que a ideia é um projeto teu, como farias?

  • eu metia uma pagina de topo (com o logotipo à esquerda, um banner no meio, o carrinho à direita e o botão logout.
  • metia uma pagina de rodape com os creditos e alguns links (pagamentos, envio, contatos) e o botao logout (caso já tivesse entrado no login.
  • outra pagina no centro onde iria decorrer toda a loja.

na pagina que mostra o produto, teria:

  • um slide com seta para a esquerda e direita que mostrava a imagem do produto. ao clicar escurecia ou desfocava todo o site e abria a imagem em grande.
  • mostrava o nº de produtos em stock
  • o nome
  • descrição
  • caracteristicas (seria opcional, ou seja so caso fossem adicionadas na administraçao é que eram mostradas na loja): (cor, tamanho"altura/largura/espessura", peso)
  • preço (com ou sem desconto promocional, caso existisse uma promoção riscava o preço normal e mostrava ao lado ou abaixo o novo).
  • e 3 botões... "adicionar ao carrinho" e "guardar em desejos" e "comparar produto"
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...