THX1138 Postado Setembro 30, 2005 Denunciar Share Postado Setembro 30, 2005 estou montando um código em PHP que dependendo do que a gente escolhenum FORM ele executa uma consulta diferente no BD.+- Assim: <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> Ordenar <select name="list" class=news> <option VALUE="query1">por ordem alfabética <option VALUE="query2">Por ordem decrescente de área <option VALUE="query3">Por ordem crescente de área <option VALUE="query4">Por região </select> etc O problema é que não sei como passar essas queries pro SQL.quer dizer eu monto as queries: $query1 = "SELECT * FROM tabela ORDER BY nome";$query2 = etc...Mas como faço essa ligação do FORM pro banco?Falow! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mayconvm Postado Setembro 30, 2005 Denunciar Share Postado Setembro 30, 2005 pega assim $_POST['list']; ai e so da uma condição para quando for a query q quiser e pronto... mais ai quer uma solução melhor... coloque no value do menu o nome da tabela q ai e so criar 1 query para todas e no lugar de <tabela> e so colocar $_POST['list']; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 charlesschaefer Postado Setembro 30, 2005 Denunciar Share Postado Setembro 30, 2005 sugestãozinha minha seria a seguinte:$ord = $_POST['list']; $sql = "SELECT * FROM tabela ORDER BY $ord";Sacou? Daí você muda o nome dos option's no form para:<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">Ordenar <select name="list" class=news><option VALUE="nome">por ordem alfabética<option VALUE="nome DESC">Por ordem decrescente de área...etc...te ajuda??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 THX1138 Postado Setembro 30, 2005 Autor Denunciar Share Postado Setembro 30, 2005 Beleza, estou seguindo sua orientação, mas ainda tem um problema:quando o código roda pela primeira vez ele precisa de um valor defaultpara a query, não é? esse valor não é passado...Vou explicar melhor, meu código tá assim (mas dá erro): <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> Ordenar <select name="list" class=news> <option VALUE="nome">por ordem alfabética <option VALUE="area DESC">Por ordem decrescente de área <option VALUE="area">Por ordem crescente de área <option VALUE="regiao">Por região </select> <input type=button VALUE="Ok"></form> <? $username="root"; $password=""; $host="localhost"; $databasename="dados"; $db = mysql_connect("$host", "$username", "$password"); mysql_select_db("$databasename", $db); $ord = $_POST['list']; echo "<TABLE><THEAD><TR>"; echo "<TH scope=col>Nome</TH>"; echo "<TH scope=col>Abrev.</TH>"; echo "<TH scope=col>Área</TH>"; echo "<TH scope=col>Região</TH>"; echo "</TR></THEAD>"; echo "<TFOOT><TR><TH scope=row>Total</TH><TD colSpan=4>Lista competa</TD></TR></TFOOT>"; $query = "SELECT * FROM tabela ORDER BY $ord"; $result = mysql_query($query, $db); for ($i = 1; $i <= 80; $i++) { $row = mysql_fetch_array($result, MYSQL_ASSOC); if ($i % 2 == 0) { $f="class=odd"; } else $f=""; $k=$row["abrev"]; echo "<TR $f><TH scope=row>"; echo $row["nome"]; echo "</TH><TD>"; echo $row["endereco"]; echo "</TD><TD>" . $k . "</TD><TD>"; echo $row["alfa"]; echo "</TD><TD>"; echo $row["area"]; echo "</TD><TD>"; echo $row["regiao"]; echo "</TD><TD>"; } print "</table>\n"; mysql_free_result($result); mysql_close($db); ?> Não esquenta com a última parte, como eu sei que são só 80 tuplasna tabela fiz um loop FOR e para diagramar uso uma rotina pra verse a linha é par ou ímpar e imprimir bonitinho. Só frescura. O problemaé que o código assim ainda não funciona... tá faltando alguma coisa... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 THX1138 Postado Outubro 1, 2005 Autor Denunciar Share Postado Outubro 1, 2005 Uma ajudinha, pessoal!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 THX1138 Postado Outubro 1, 2005 Autor Denunciar Share Postado Outubro 1, 2005 Ô galera, faz favor, uma ajuda aqui, please!Já tentei catar uns tutoriais na web mas nada me ajudou no meu problema(o código do FORM e o PHP ficam na mesma página) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Outubro 2, 2005 Denunciar Share Postado Outubro 2, 2005 verifica se o "list" contem algo se não coloca um valor padrão para a $ord.. tipo :<?if($_POST['list']) $ord = $_POST['list'];else $ord = "nome";$sql = "SELECT * FROM tabela ORDER BY $ord"; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 charlesschaefer Postado Outubro 2, 2005 Denunciar Share Postado Outubro 2, 2005 or favor, seja um pouco mais claro no que você quer, qualquer coisa entra ai no MSN q se puder ajudar o farei:charlesdcs@hotmail.comflows Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 THX1138 Postado Outubro 2, 2005 Autor Denunciar Share Postado Outubro 2, 2005 Belê! Funcionou a dica do "Guest". Agora olha só, charlesschaefer e Guest,o problema é que quando eu carrego a página, ele faz a consulta padãoe imprime sem problema, mas se eu escolher qualquer opção no FORMe digitar OK, nada acontece. Não será que a linha <input type=button VALUE="Ok"> tem parâmetros insuficientes prarealizar uma nova consulta?Obrigado pelas respostas! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 charlesschaefer Postado Outubro 2, 2005 Denunciar Share Postado Outubro 2, 2005 cara, você so deve usar o button se tiver uma função para chamar no modo onclick do mesmo, caso contrário você deve usar o submit para enviar o formulário para o link descrio no atb action do form:<form action="pagina.php" method="post" name="nome">............<input type="submit" value="OK!" />flows... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jissa Postado Outubro 2, 2005 Denunciar Share Postado Outubro 2, 2005 vou tentar explicar o que coloquei (o guest era eu )a primeira vz que executa a variavel $ord esta sem nada então o que fiz ai foi determinar algum valor para ela caso não tenha conteudo..então bem no inicio voce verifica se existe conteudo no POST, se ele estiver sem nada vai preencher o $ord com o conteudo nome, se tiver algo preenchido vai pegar o que foi passado pelo $_POST. if($_POST['list']) // verifica se foi passado algo $ord = $_POST['list']; // Se foi passado atribui ao $ord o valor passado else $ord = "nome"; // Se não foi passado, coloca nome como padrão Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 THX1138 Postado Outubro 2, 2005 Autor Denunciar Share Postado Outubro 2, 2005 Tranquilo, Jissa. Entendi! E funcionou. Quando eu carrego a página elefaz a consulta padrão (nome). Mas porque quando eu escolho outraopção no FORM (por Regiao, por explo, só pra citar uma) nada acontece?Esse é o problema agora! Ele só faz a consulta padrão. Nada acontecequando clico no OK do form.Valeu! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 charlesschaefer Postado Outubro 2, 2005 Denunciar Share Postado Outubro 2, 2005 velho o botão que você está usando não tem função alguma, assim nunca vai enviar o formulário!!!!!você deve usar o submit, como eu falei acima!!!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 THX1138 Postado Outubro 2, 2005 Autor Denunciar Share Postado Outubro 2, 2005 Ops! Valeu cara, na hora que eu escrevi não tinha visto o seu post!Desculpa a ignorância! Agora funcionou sim!Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 charlesschaefer Postado Outubro 2, 2005 Denunciar Share Postado Outubro 2, 2005 nada, preciando!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
THX1138
estou montando um código em PHP que dependendo do que a gente escolhe
num FORM ele executa uma consulta diferente no BD.
+- Assim:
O problema é que não sei como passar essas queries pro SQL.
quer dizer eu monto as queries:
$query1 = "SELECT * FROM tabela ORDER BY nome";
$query2 = etc...
Mas como faço essa ligação do FORM pro banco?
Falow!
Link para o comentário
Compartilhar em outros sites
14 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.