Estou fazendo um sistema para uma empresa de outdoor para que ele tenha uma lista
de disponibilidades de pontos on-line.
Mas estou com 2 problemas.
1º
Tenho três tabelas: pontos, bissemanas e disponibilidades. E tenho três páginas: Cadastrar Ponto, Cadastrar Bissemana e Disponibilidades.
O problema está sendo na página disponibilidades. Ao abri lá, tem uma lista com as bissemanas com o link editar, que após aberto lista os pontos cadastrados.
Essa lista serve para definir se o ponto está disponível ou não. Na primeira vez que ela é aberta, todos os pontos devem estar Disponíveis, para isso apenas uso
SELECT * FROM pontos ORDER BY id
Até aí tudo bem. Depois que salvo a primeira vez, são gravadas as ligações entre a tabela Pontos e Bissemanas na tabela Disponibilidades.
A tabela Disponibilidades tem duas chaves estrangeiras vindas da Pontos e da Bissemanas, além do campo disponivel e numBisemana
Quando abro a página dessa bissemana novamente os valores disponivel ou não disponivel de cada ponto devem vir preenchidos de acordo com o que tinha salvado previamente.
Isso consegui utilizando
SELECT * FROM pontos AS jp INNER JOIN disponibilidades AS jd ON(p.id = d.pontos_id) WHERE d.bisemanas_id = $id_bisemana
Mas como estou utilizando o WHERE d.bisemanas_id = $id_bisemana para verificar se pertence à bissemana que abri, ele só mostra os pontos que eu já tinha cadastrado, mas se eu inserir um ponto novo, ele não aparece na lista pois não vai existir na tabela disponibilidades.
Então, como faço para listar todos os pontos da tabela pontos e ainda pegar os valores dos preenchidos da tabela disponibilidades e mostrando até mesmo os que forem adicionados depois?
2º
Problema quanto aos anos.
Tenho a bissemana 2 de 2010 e a bissemana 2 de 2011, mas estou usando
SELECT * FROM disponibilidades WHERE numBisemana = $numBisemana
para pegar a bissemana em que estou. Como o registro da bissemana “2” existe na tabela disponibilidades, é usada a query
SELECT * FROM justino_pontos AS jp INNER JOIN disponibilidades AS jd ON(p.id = d. pontos_id) WHERE d.bisemanas_id = $id_bisemana
Então os registros que são pegos são os da bissemana 2 de 2010, mas quando entro na 2 de 2011 ele se baseia no mesmo nº da bissemana, só que a id dela é diferente, sendo assim, nada é retornado.
As dúvidas são um tanto grandes, mas espero que possam me ajudar
Obrigado

Help














