Jump to content
Fórum Script Brasil
  • 0

Ajuda apresentação de categorias


joanita
 Share

Question

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>

Edited by joanita
Link to comment
Share on other sites

16 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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.

Edited by joanita
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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

Edited by lowys
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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

 

Edited by joanita
Link to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...