Jump to content
carvalho2707

Como mostrar valores no select consoante os anteriores

Recommended Posts

carvalho2707

tenho uma tabela Encomenda e outra que regista a encomenda(pratos encomendados):

create table Encomenda(
email VARCHAR(80),
nEnc integer,
precoTotal integer,
desconto integer,
nomeR VARCHAR(80),
dia integer,
mes VARCHAR(45),
ano integer,
constraint c5 primary key (email, nEnc),
foreign key (email) references Cliente(email),
foreign key (nomeR) references Restaurante(nomeR),
foreign key (dia, mes, ano) references Data(dia, mes, ano));


create table RegistoEnc(
email VARCHAR(80),
nEnc integer,
nomeA VARCHAR(80),
constraint c6 primary key (email,nEnc,nomeA),
foreign key (email,nEnc) references Encomenda(email, nEnc),
foreign key (nomeA) references Prato(nomeA));

eu quero criar uma app em php para adicionar pratos a' encomenda.

eu criei um script para pedir os dados, e outro para selecionar os pratos e outro para adicionar esses pratos a' encomenda..

o problema e' que so queria avancar se os dados pedidos fossem uma entrada valida na tabela Encomenda..

Alguem me consegue dizer como poderia fazer isto? tive duas ideias:

-inserir tudo e no final so avança se existir

- selecionar um campo do select o seguinte só vai mostrar as opções com o campo anterior

obrigado ;)

Edited by carvalho2707

Share this post


Link to post
Share on other sites
fil79

boas, tenho uma form com 3 selects, digamos, nome, mail e ocupação (todos chaves primarias da mesma tabela)..

Para avançar para o proximo passo o utilizador tem de seleccionar esses campos atraves da option e tem de ser uma entrada valida na tabela..

Alguem me consegue dizer como poderia fazer isto? tive duas ideias:

-inserir tudo e no final so avança se existir

- selecionar um campo do select o seguinte só vai mostrar as opções com o campo anterior

obrigado ;)

Muito confuso. Tens 3 chaves primárias na mesma tabela???


MCITP-MCTS-MCP

Share this post


Link to post
Share on other sites
Virneto

boas, tenho uma form com 3 selects, digamos, nome, mail e ocupação (todos chaves primarias da mesma tabela)..

Para avançar para o proximo passo o utilizador tem de seleccionar esses campos atraves da option e tem de ser uma entrada valida na tabela..

Alguem me consegue dizer como poderia fazer isto? tive duas ideias:

-inserir tudo e no final so avança se existir

- selecionar um campo do select o seguinte só vai mostrar as opções com o campo anterior

Está confuso sim. As chaves primárias são únicas e exclusivas, ou seja, numa tabela MySql só tens uma chave primária e, outras chaves estrangeiras que, são primárias em tabelas referênciadas.

Relativamente ao teu form, não é preferivel teres um campo input e o utilizador insere os seus dados e depois verificas se existe na BD?

Se tiveres 500 utilizadores não vais fazer um select com 500 opções, certo?

quanto às opções que apresentas, se estás a falar num form de log in ou algo parecido, acho que é claramente mais seguro pedir os dados todos e avançar só no final.


"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Share this post


Link to post
Share on other sites
carvalho2707

Está confuso sim. As chaves primárias são únicas e exclusivas, ou seja, numa tabela MySql só tens uma chave primária e, outras chaves estrangeiras que, são primárias em tabelas referênciadas.

Relativamente ao teu form, não é preferivel teres um campo input e o utilizador insere os seus dados e depois verificas se existe na BD?

Se tiveres 500 utilizadores não vais fazer um select com 500 opções, certo?

quanto às opções que apresentas, se estás a falar num form de log in ou algo parecido, acho que é claramente mais seguro pedir os dados todos e avançar só no final.

usei select porque disseram que tenho que utilizar pessoas ja existentes, ou seja, as opcoes do select sao apenas as que vem da querie..

ainda assim achas que deva utilizar um campo normal em vez do select?

Share this post


Link to post
Share on other sites
Virneto

Eu acho que sim, mas não estou a ver as especificações do teu projeto. Estou só a pensar por fora, mas vê:

na tua página do formulário apresentas um select com todos os nomes vindos da BD? Se o utilizador nem está na lista só tem de escolher um dos nomes (à sorte) para tentar entrar? Então se fizeres tudo em select já pensaste que estás a fornecer a informação toda a qualquer utilizador que carregue a página do form!!

O único campo que me parece mais adequado a um select é eventualmente o da ocupação. de resto, pedes os dados primeiro e só depois fazes a query e verificas se eles existem. E se não existem informas que os dados não estão correctos.


"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Share this post


Link to post
Share on other sites
carvalho2707

mas isto nao e' um sistema de login..

vou reformular entao para o meu projecto..

tenho uma tabela Encomenda e outra que regista a encomenda(pratos encomendados):

create table Encomenda(
email VARCHAR(80),
nEnc integer,
precoTotal integer,
desconto integer,
nomeR VARCHAR(80),
dia integer,
mes VARCHAR(45),
ano integer,
constraint c5 primary key (email, nEnc),
foreign key (email) references Cliente(email),
foreign key (nomeR) references Restaurante(nomeR),
foreign key (dia, mes, ano) references Data(dia, mes, ano));

create table RegistoEnc(
email VARCHAR(80),
nEnc integer,
nomeA VARCHAR(80),
constraint c6 primary key (email,nEnc,nomeA),
foreign key (email,nEnc) references Encomenda(email, nEnc),
foreign key (nomeA) references Prato(nomeA));

eu quero criar uma app em php para adicionar pratos a' encomenda.

eu criei um script para pedir os dados, e outro para selecionar os pratos e outro para adicionar esses pratos a' encomenda..

o problema e' que so queria avancar se os dados pedidos fossem uma entrada valida na tabela Encomenda..

desculpem se nao me explico bem :/

Share this post


Link to post
Share on other sites
Virneto

Ok, percebi, sorry :confused:

Neste caso, acho que o melhor para ti será utilizares ajax. Podes fazer um pedido à BD sem ter de recarregar a página.

Por exemplo, num primeiro select terias as opções:

1 - Prato Principal

2 - Sopa

3 - Sobremesa

4 - ...

E com base neste primeiro select (por exemplo o utilizador seleciona Sobremesa) inicias um pedido Ajax que te vai à BD e solicita todos os pratos com o tipo=Sobremesa. Com a resposta do Ajax populas o segundo Select e assim sucessivamente.

este tópico e pesquisa também no p@p. há vários tópicos sobre isto.

have fun!! :P


"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Share this post


Link to post
Share on other sites
Virneto

Neste caso terás de carregar todas as opções ao carregar a página, que foi o que começaste por dizer no início do tópico :confused:

depois quando fores confirmar ou adicionar a encomenda à tua bd, então recarregas a página.


"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Share this post


Link to post
Share on other sites
carvalho2707

Neste caso terás de carregar todas as opções ao carregar a página, que foi o que começaste por dizer no início do tópico :confused:

depois quando fores confirmar ou adicionar a encomenda à tua bd, então recarregas a página.

ai surge o meu problema,

nao ha maneira de verificar os valores dos varios select antes de fazer submit?

por exemplo, se escolher email = x, nomeR = y e essa entrada não estiver na tabela ele bloqueia o botao de submeter?

Share this post


Link to post
Share on other sites
HappyHippyHippo

sabes que AJAX é programado com Javascipt ... algo que já se tornou padrão na net ...


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.