Ana Riet 0 Denunciar post Postado Outubro 9, 2008 oi, gente! meu problema é o seguinte... tenho uma página 1 que passa determinados parâmetros de um formulário pra página 2. só que dependendo de quais parâmetros são passados, a query na página 2 muda. na página 1 tenho um select com opções e algumas checkboxes (todos puxados do banco de dados). na página 2, consigo pegar os valores numa boa: <select name="estacoes[]" style="width: 15em" size=6 multiple> <? while ($row = mysql_fetch_array($resultado)) { echo "<option value=".$row["codEstacaoUsuario"]." selected>".$row["nomeEstacao"]; } ?> </select> e <? while ($row = mysql_fetch_array($resultado2)) { echo " <tr> <td> <input type='checkbox' name='status[]' value=".$row["codStatus"]." checked>".$row["descrStatus"]." </td> </tr>"; } ?> na página 2, consigo pegar esses valores na boa: $estacoes = $_POST['estacoes']; for ($i=0;$i<count($estacoes);$i++) { $estacoes[$i]; } $status = $_POST['status']; for ($i=0;$i<count($status);$i++) { $status[$i]; } o meu problema é que podem ser passadas 1 ou n estações e 1 ou n códigos de status. e minha query tem que pesquisar utilizando "OR" pra todos eles passados. ou seja, algo mais ou menos assim: select c.codChamado, c.descricao, a.nomeAnalista, sc.descrStatus, eu.usuario, eu.nomeEstacao, date_format(c.data,'%d/%m/%Y às %Hh%i') AS data from chamado c, analista a, statusChamado sc, estacaoUsuario eu where a.codAnalista = c.fkCodAnalista and sc.codStatus = c.fkCodStatusChamado and eu.codEstacaoUsuario = c.fkCodEstacaoUsuario and ( fkCodEstacaoUsuario = 1 or fkCodEstacaoUsuario = 2 or fkCodEstacaoUsuario = 3 or fkCodEstacaoUsuario = 4 ) and ( fkCodStatusChamado = 1 or fkCodStatusChamado = 2 or fkCodStatusChamado = 3 or fkCodStatusChamado = 4 ) order by c.codChamado só que, como faço pra inserir na query os códigos que foram passados dinâmicamente delo usuário na página 1? viajando muito (é difícil de explicar), eu queria que existisse uma loucura mais ou menos assim: $query1 = " select c.codChamado, c.descricao, a.nomeAnalista, sc.descrStatus, eu.usuario, eu.nomeEstacao, date_format(c.data,'%d/%m/%Y às %Hh%i') AS data from chamado c, analista a, statusChamado sc, estacaoUsuario eu where a.codAnalista = c.fkCodAnalista and sc.codStatus = c.fkCodStatusChamado and eu.codEstacaoUsuario = c.fkCodEstacaoUsuario and ( fkCodEstacaoUsuario = '$estacoes[0]'" . for ($i=1;$i<count($estacoes);$i++) { echo "OR fkCodEstacaoUsuario = '$estacoes[$i]'; } . " ) and ( fkCodStatusChamado = '$status[0]'" . for ($i=1;$i<count($status);$i++) { echo "OR fkCodStatusChamado = '$status[$i]'; } . " ) order by c.codChamado"; eu sei que isso é um absurdo e não existe, mas deu pra entender o que eu estou querendo mais ou menos? como eu posso fazer isso, alguém tem idéia? :wacko: agradeço quem puder ajudar! Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Outubro 10, 2008 Basta você fazer a query em pedaços e depois juntar tudo numa variavel soh Compartilhar este post Link para o post Compartilhar em outros sites
Ana Riet 0 Denunciar post Postado Outubro 10, 2008 valeu! :) Compartilhar este post Link para o post Compartilhar em outros sites