Ola pessoal estou efetuando uma consulta dinâmica no banco utilizando checkbox.
Pesquisei alguns códigos aqui no forum e em outros locais e consegui fazer a consulta.
MAs então estou com um problema, como a minha tabela possui chaves estrangeiras em determinados campos o retorno vai ser o código e não o nome que esta na outra tabela.
Estou enviando o codigo quem puder me ajudar muito obrigado!
$tipoMaterial = $_POST['tipoMaterial']; $criterio = " WHERE "; for($i = 0; $i < count($tipoMaterial); $i++) { switch ($tipoMaterial[$i]) { case '2': $criterio .= "m.MtCodMaterial = ".$tipoMaterial[$i]." OR "; break; case '1': $criterio .= "m.MtCodMaterial = ".$tipoMaterial[$i]." OR "; break; case '3': $criterio .= "m.MtCodMaterial = ".$tipoMaterial[$i]." OR "; break; case 'all': $criterio = ""; break; } } $criterio = substr($criterio, 0, -3); $campos = array( 'MtCodigo' => 'Código', 'MtCodLoc' => 'Local de Estoque', 'MtCodProjeto' => 'Projeto', 'MtCodEspMnt' => 'Especilidade', 'MtPn' => 'PN', 'MtSn' => 'SN', 'MtPatrimonio' => 'Patrimônio', 'MtNome' => 'Nome', 'MtObs' => 'Obs.', 'MtQuantidade' => 'Qtd. Estoque', 'MtCodMaterial' => 'Tipo de Material'); if(isset($_POST['campos'])) { $selecionados = $_POST['campos']; //retorna somente os campos que existem na variavel $campos $permitidos = array_intersect($selecionados, array_keys($campos)); $query = "SELECT " . implode(', ', $permitidos) . " FROM tb_material as m \r INNER JOIN tb_localizacao l ON m.MtCodLoc = l.LcCodigo \r INNER JOIN tb_projeto p ON m.MtCodProjeto = p.PrCodigo \r INNER JOIN tb_tipoMaterial t ON m.MtCodMaterial = t.TmCodigo \r INNER JOIN tb_espec_mnt e ON m.MtCodEspMnt = e.EmCodigo $criterio"; //somente para testar o formulario echo "<br><br><br><br>"; //echo $query; } ?> <table> <tr> <?php //echo $query; //imprime o cabeçalho foreach ($permitidos as $nome) echo "<th>". $campos[$nome] . "</th>"; ?> </tr> <?php //realiza a consulta $result = mysql_query($query) or die (mysql_error()); //imprime os resultados print_r($result); while($valores = mysql_fetch_row($result)) { ?> <tr> <?php foreach($valores as $valor) print_r($valores); echo "<td class=\"celula\">".$valor."</td>"; ?> </tr> <?php } ?>
Os campos que são chave estrangeira estão nos INNER JOINS.
Sei que devo puxar o nome deles na outra tabela mas não estou sabendo fazer isso.
Alguem tem como me ajudar!