regina 0 Denunciar post Postado Outubro 14, 2010 Bom dia, tenho um select onde gostaria que, dependendo do valor de um campo ordenasse de uma forma, dependendo do valor de outra, tem como fazer isso? $sql=mysql_query("SELECT campo1,campo2,campo3 FROM tb_opiniao WHERE pesquisa_id='$pesquisa' AND exibir='sim' IF (ordem_resposta='aleatoria' ORDER BY opiniao_id ASC) ELSE (ORDER BY opiniao_id RAND()))") or die (mysql_error()); Agradeço a ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 14, 2010 Se o campo for da mesma tabela pode embarralhar a ordenação , mas dá até para fazer order by (case when opcao=1 then nome else codigo end) Talvez fique melhor como um parametro. Compartilhar este post Link para o post Compartilhar em outros sites
regina 0 Denunciar post Postado Outubro 14, 2010 Motta, coloquei assim: $sql=mysql_query("SELECT campo1,campo2,campo3 FROM tb_opiniao WHERE pesquisa_id='$pesquisa' AND exibir='sim' ORDER BY (CASE WHEN ordem_resposta='aleatoria' THEN opiniao_id ASC ELSE opiniao_id RAND() END)") or die (mysql_error());O campo é o mesmo, só o tipo de ordenação que muda de ASC para RAND, e é justamente onde dá o erroYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ASC ELSE pergunta_id RAND() END)' at line 1 Grata Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 14, 2010 ORDER BY (CASE WHEN ordem_resposta='aleatoria' THEN RAND() ELSE opiniao_id END) ASC Compartilhar este post Link para o post Compartilhar em outros sites
regina 0 Denunciar post Postado Outubro 14, 2010 Muito obrigada Motta, funcionou, só não está exibindo os dados. $reg=mysql_num_rows($sql); while($row=mysql_fetch_array($sql)){ <h3><?php print $row["campo1"]; ?></h3> if(!empty($row["campo2"])) print nl2br($row["campo2"]); não traz o valor dos campos, mas se imprimir o mysql_num_rows($sql) exibe a quantidade de registros 4. Grata Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 15, 2010 Creio que o Membro ainda tem dúvida, não está resolvido. Compartilhar este post Link para o post Compartilhar em outros sites
regina 0 Denunciar post Postado Outubro 15, 2010 Muito obrigada Motta, já está resolvido :) Compartilhar este post Link para o post Compartilhar em outros sites