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

(Resolvido) Mostrars resultados do Banco de Dados


Parisi

Pergunta

Eu tenho uma tabela no BD com nome de "clientes". Dentro dessa tabela tenho os campos:

ID

NOME (nome da loja)

DESCRICAO (descrição da loja)

ENDERECO (endereço da loja)

TELEFONE (teleofne da loja)

IMAGEM (endereço da imagem)

CATEGORIA (a categoria que cada empresa está).

E dentro da CATEGORIA, vamos supor que tenha cadastrado: categoria_1 e categoria_2.

Tem como exibir os resultados em uma página, só com os cadastros da "categoria_1" !?

Porque eu faço o (SELECT * FROM clientes ORDER BY nome ASC LIMIT $inicio, $qnt) , abre normal, consigo a paginacao necessaria, mas gostaria de estipular em cada pagina a categoria que deve abrir..

Porque senao, terei que cadastrar as empresas em tabelas diferentes.. o que dá um trabalho maior..

Desde já agradeço a atenção

Abraços

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Eu tenho uma tabela no BD com nome de "clientes". Dentro dessa tabela tenho os campos:

ID

NOME (nome da loja)

DESCRICAO (descrição da loja)

ENDERECO (endereço da loja)

TELEFONE (teleofne da loja)

IMAGEM (endereço da imagem)

CATEGORIA (a categoria que cada empresa está).

E dentro da CATEGORIA, vamos supor que tenha cadastrado: categoria_1 e categoria_2.

Tem como exibir os resultados em uma página, só com os cadastros da "categoria_1" !?

Porque eu faço o (SELECT * FROM clientes ORDER BY nome ASC LIMIT $inicio, $qnt) , abre normal, consigo a paginacao necessaria, mas gostaria de estipular em cada pagina a categoria que deve abrir..

Basta você utilizar um WHERE:

SELECT * FROM clientes WHERE categoria="categoria_1" ORDER BY nome ASC LIMIT 1, 1
No PHP:
$inicio = 5;
$qnt = 10;
$categoria = "categoria_1";
$sql = sprintf( "SELECT * FROM clientes WHERE categoria='%s' ORDER BY nome ASC LIMIT %d,%d" , $categoria , $inicio , $qnt );

Porque senao, terei que cadastrar as empresas em tabelas diferentes.. o que dá um trabalho maior..

<_< Será mesmo que vale a pena a perda de desempenho que esse formato irá causar por conta de "um trabalho maior" ???

[]'s

J. Neto

Link para o comentário
Compartilhar em outros sites

  • 0
Vou separar por tabelas mesmo, dá um pouco mais de trabalho, mas é melhor..

Bom, então se vale a sugestão:

Tabela de clientes:

CREATE TABLE `clientes` (
	`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
	`nome` varchar(50) NOT NULL,
	`descricao` text NOT NULL,
	`endereco` varchar(50) NOT NULL,
	`telefone` varchar(14) NOT NULL,
	`imagem` varchar(80) NOT NULL,
	`categoria` mediumint(8) unsigned NOT NULL,
	`ativo` enum('S','N') NOT NULL DEFAULT 'S',
	PRIMARY KEY (`id`),
	KEY `nomes` (`nome`),
	KEY `categorias` (`categoria`,`nome`) USING BTREE,
	KEY `ativos` (`ativo`,`categoria`,`nome`) USING BTREE
) ENGINE=MyISAM;
Tabela de categorias:
CREATE TABLE `categorias` (
	`id` mediumint UNSIGNED NOT NULL AUTO_INCREMENT,
	`nome` varchar(30)  NOT NULL,
	PRIMARY KEY (`id`),
	INDEX `nomes`(`nome`)
) ENGINE = MyISAM;
Ai no seu PHP para resgatar os clientes:
$inicio        = 5;
$qnt        = 10;
$categoria    = "categoria_1";
$ativo        = "S";
$sql        = sprintf( "select
    cli.id,
    cli.nome,
    cli.descricao,
    cli.endereco,
    cli.telefone,
    cli.imagem,
    cat.nome 'categoria'
from
    categorias cat
left join
    clientes cli use index(ativos)
on
    ( cli.ativo = '%s' ) AND
    ( cli.categoria = cat.id )
where
    ( cat.nome = '%s' )
order by
    cli.nome ASC
limit
    %d,%d",
$ativo,
$categoria,
$inicio,
$qnt );

Dessa forma, você terá suas categorias separadas em uma tabela e seus clientes em outra. Os clientes poderão ser "ativos" ou "inativos", essa consulta (um pouco maior que a anterior) já traz os seus clientes exatamente no mesmo formato que da forma anterior, então basta você cadastrar suas categorias e depois quando cadastrar um cliente usar o id da tabela categoria que a listagem dos clientes ficará igual antes.

ps: É apenas uma sugestão. ;)

[]'s

J. Neto

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
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...