Ir ao conteúdo
  • Cadastre-se

Dinamica entre tratamento de dados


ooooBR

Posts recomendados

obrigado pela atenção Roberto, finalmente testei aqui em casa... porém infelizmente não deu certo, usei o código que você sugeriu, apenas corrigindo a tabela usuario por funcionario... mais no entanto ela serviu pra mostrar apenas os dados que estiverem na linha do código!!! descobri que se eu colocar um WHERE setor = 'Fiscal' ai sim aparece só os dados referente ao setor fiscal, mais eu preciso de uma forma mais dinamica que identifique pelo setor que vai ta na tabela do usuario!!!

Link para o comentário
Compartilhar em outros sites

Me diga quais os dados que estão na tabela usuário, na coluna do setor.

Está escrito, "Fiscal" ou é um código ?

Se for "fiscal" ai é só você fazer um select na tabela usuário antes, ou ainda...


SELECT
ord.id,
ord.descricao
FROM
ordem_servico ord
WHERE
setor=(
SELECT
setor
FROM
usuario
WHERE
id_usuario="aqui você coloca o id que é resgatado de algum lugar onde mostra que ele é o usuário"
)

Acredito que isso deva resolver.

Link para o comentário
Compartilhar em outros sites

  • Moderador

só uma pergunta, porque você nao separa o setor da tabela, e criando uma tabela setor? contendo apenas 2 campos: idSetor e setor.

e faz um relacionamento de 1:N com a tabela usuario que recebe a ID do setor?

porque digo isso? para nao onerar seu banco... o desempenho cai um pouco se você consultar uma tabela com muitos campos que poderiam estar vinculados em outra tabela...

Link para o comentário
Compartilhar em outros sites

  • Moderador

exato. o roberto esta certíssimo.

sabe o que você poderia fazer amigo? é só uma dica .. você decide se faz ou nao..

você conhece o programa chamado mysql Workbench? se sim, crie uma conexao com seu banco, e clique na opção de criar um modelo a partir de um banco de dados existente. então no menu database clique em reverse engineer , selecione seu banco de dados.. e va seguindo ate finalizar.. o que isso faz?

ele puxa seu banco de dados para o workbech e faz um modelo. então você pode visualizar o que você fez e alterar sua estrutura.. e criar tabelas e relacionamentos... dai então quando você finalizar você pode fazer um synchronize de re-enviar de volta seu banco para o phpmyadmin com as alteraçoes feitas. isso é usado para você alterar seu banco sem haver a mudaça na hora. você pode visualisar como ficou e ai enviar.

eu faço isso sempre.. todos meus bancos, eu modelo antes no workbench.. e depois eu envio para o phpmyadmin com a opção forward engineer que serve para enviar o modelo caso ainda nao exista

bom é so uma dica...

abraço

Link para o comentário
Compartilhar em outros sites

  • Moderador

pense uma coisa amigo, vamos supor que você tem um mega tabelao.. que você tras tudo em uma consulta.. sendo que alguns campos podem e devem ser separados em outras tabelas justamente por causa de desempenho. vou te dar um exemplo bem comum que o pessoal costuma fazer.

uma tabela de funcionarios veja bem uma tabela que onera:

idFuncionario, nome, email, senha, endereco, bairro, cidade, cep, ramo, empresa

repare, temos ali 10 campos que inicialmente você iria armazenar um varchar em cada um tendo que digitar o bairro, cidade, ramo e empresa. uma cosulta disso tornaria muito lenta. lembrando de que estamos falando de um tabelao com tudo ali.

agora vamos ao mesmo exemplo de uma maneira mais otimizada que melhora o desempenho em consultas:

temos uma tabela funcionario:

idFuncionario, nome, email, endereco, senha, idBairro, idCidade,cep ,idRamo, idEmpresa

temos uma tabela bairro:

idBairro, bairro

temos uma tabela cidade:

idCidade, cidade

temos uma tabela ramo:

idRamo, ramo

temos uma tabela empresa:

idEmpresa, empresa

repare que de uma tabela grande, foi dividido em 5 tabelas certo? porque disso? por causa que as tabelas: bairro, cidade, ramo e empresa terão registros fixos, unicos. que você pode fazer com que o cara que esta cadastrando apenas selecione por um campo select sem haver possiveis erros de digitaçao.

alem do mais que você estaria fazendo uma referencia de id para id nas tabelas, ou seja, estaria consultando um campo numérico ao invés de um campo tipo texto , que no caso aumentaria o desempenho de sua consulta.

toda essa mudança de tabelas tem um nome, na modelagem de banco de dados... e se chama: "Normalizaçao" ou "Otimizaçao", serve justamente para previnir erros e possiveis anomalias alem de duplicaçao de dados e outros problemas mais graves.

Link para o comentário
Compartilhar em outros sites

O que o dif falou está certo amigo,

Basicamente você deve rever seu banco de dados, antes de continuar a programar.

Por que isso ?

Simples, seu banco de dados é o esqueleto do seu sistema.

Se ele estiver com problemas, todo o seu sistema ficará com problemas.

Então eu sugiro que você reveja seu banco de dados, analise ele com cuidado, e se tiver algum amigo que trabalha com modelagem de dados, veja com ele se está correto.

Se você tiver um banco de dados coeso, com os campos dos tipos corretos, e dividido de maneira correta, você pode ter menos dor de cabeça quando for programar.

Pense a respeito.

Abraços

Link para o comentário
Compartilhar em outros sites

entendi, você estão certos, mais como é um projeto apenas de apoio estava olhando mais pra funcionabilidade do que pra programação!!

até então pra mim o interessante seria apenas que o sistema fizesse a atividade não importando de que forma, mais pelos que vocês falaram esse é o unico jeito de chegar ao objetivo! mais uma vez obrigado pelas dicas!!!

Link para o comentário
Compartilhar em outros sites

hhehehe num desisti não pessoal, é que durante o dia estou no trabalho... bom fiz uma alteração diante das sugestões dos amigos quem vem me ajudando!!!


<select name="setor" size="1" class="select">
<option>Selecione</option>
<option value="Almoxarifado">Almoxarifado</option>
<option value="Compras">Compras</option>
<option value="Controladoria">Controladoria</option>
<option value="Documenta?o">Documenta?o</option>
<option value="Faturamento">Faturamento</option>
<option value="Financeiro">Financeiro</option>
<option value="Fiscal">Fiscal</option>
<option value="Garantia">Garantia</option>
<option value="Planejamento">Planejamento</option>
<option value="Vendas">Vendas</option>
</select>

troquei por isso...


<?php
function montaCombo($setor, $rs, $valor, $descricao){
echo("<select name='$setor' class='combo'>\n");
echo("\t<option value=''>Selecione</option>\n");
while ($obj = mysql_fetch_object($rs)){
echo("\t<option value='".$obj->$valor."' > ". $obj->$descricao." </option>\n");
}
echo("</select>\n");
}
?>
<?php
$rs = mysql_query("SELECT idsetor, setor FROM setor ORDER BY setor");
montaCombo('combosetor', $rs, 'idsetor', 'setor');
?>

o problema é que não tá enviando o dado pra bd, alguem pode me ajudar??

Link para o comentário
Compartilhar em outros sites

  • Moderador

Pelo jeito você esta programando em orientada a objetos..

posso estar errado.. mas quando você cria uma funçao para gerar algo.. você nao teria que ter um return?

enfim..

eu faria um select diferente:

faria algo assim:


<select name="setor">
<option value="0">
<?php
include'conexao.php';

$sql ="select * from setor";
$dados = mysql_query($sql);

while($linha = mysql_fetch_array($dados)){
$id = $linha["idSetor"];
$valor = $linha["valor"];
$setor =$linha["setor"];

echo "<option value='$id'>$setor - $valor</option> ";


if (isset ($id) or ($valor) or ($setor)){
echo ="Não há registros cadastrados";
}
}

Link para o comentário
Compartilhar em outros sites

dif, sua sugestão também ficou em branco, mais acho que algo em relação ao insert não seria isso... o que tenho é esse


$insertSQL = sprintf("INSERT INTO ordemservico (Remetente, Data_Entrada, Hora_Entrada, setor) VALUES (%s, %s, %s, %s)",
GetSQLValueString($_POST['Remetente'], "text"),
GetSQLValueString($_POST['Data_Entrada'], "text"),
GetSQLValueString($_POST['Hora_Entrada'], "text"),
GetSQLValueString($_POST['setor'], "text");

e o da pagina de exibicão é esse

mysql_select_db($database_data, $data);
$query_Recordset1 = "SELECT
ord.Cod_Equipamento,
ord.Remetente
FROM
ordemservico ord
WHERE
setor =(
SELECT
setor
FROM
funcionario
WHERE
setor = "setor"
)";

Link para o comentário
Compartilhar em outros sites

bom pessoa a situação que consegui chega segue abaixo!!!!

o código está assim nao exibe msg nenhuma!!!

$query_Recordset1 = "SELECT

ordemservico.*, funcionario.setor

FROM ordemservico

LEFT JOIN funcionario ON (ordemservico.setorRecebedor=funcionario.setor)

WHERE funcionario.login='$login'";

porém com o codigo abaixo... exibe todos normalmente

$query_Recordset1 = "SELECT

ordemservico.*, funcionario.setor

FROM ordemservico

LEFT JOIN funcionario ON (ordemservico.setorRecebedor=funcionario.setor)";

porém não consegui chegar ao objetivo que é exibir apenas as referentes ao setor do usuario que estiver na pagina!!!

04.jpg

conforme a imagem estou logado como um usuario do setor Faturamento, ou seja era pra aparecer apenas as mensagens selecionadas na imagem, agradeco pelas futuras sugestoes!!!

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!