Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
[RESOLVIDO]
Olá pessoal,
tenho uma tabela menu assim
id
menu
link
ordem
quero que a ordenação seja pela ordem, tudo bem "order by ordem"
porem não sei como fazer um script para mudar essa ordem, alguem tem uma ideia, algum exemplo?
valew
você pode usar link ex: "pagina.php?ordem=desc"
e na query puxar por query string
$ordenar = $_GET['ordem'];
$sql = mysql_query("... order by ordem $ordenar");
ou usar Ajax, mas ai eu já nao vou poder te ajudar pois estou fazendo curso de ajax ainda..
Deu pra entender??
Abraço.
Sem Mais[]'..
não o que quero é deixar na administração, um jeito do cara manipular essa ordem.
só que não to conseguindo numa maneira de mudar os registros de "lugar"
esse campo ORDEM é de que tipo amigo??
voce provavelmente tera de fazer uma rotininha pra trocar o valor desse campo.
inteiro
pois é essa rotina que eu quero ajuda.
é o seguinte, como o campo ordem nao é tipo auto_increment acho que fica mais facil...
bom, vou tentar te passar uma função pra fazer esse tipo de "troca" de valores..
só uma duvida que depois voce me responde a troca será feita sempre entre valores existentes?? por exemplo: sempre será feito troca do link:6 [link:ordem] pelo link:8 ?
se for será feito mais ou menos assim:
você pode fazer 2 links: um com a escrição de "sobe" e outro "desce", entendeu? Ao clicar em sobe o numero ordem dele muda de 5 pra 4 por exemplo e o desce faz o contrario.
o link tem que ter o valor do campo ordem e o tipo de ordenação (sobe ou desce) assim: "?ordem=sobe&ordematual=5" [isso voce deve saber fazer..]
function ordenar()
{ // abre função
$ordem = $_GET['ordem'];
$ordematual = $_GET['ordematual'];
$tabela = "tabela"; // digita aqui o nome da tabela da ordem
if($ordem == "sobe")
{ // abre if ordem sobe
$ordemnova = $ordematual - 1;
} // fecha if ordem sobe
elseif($ordem == "desce")
{ // abre if ordem desce
$ordemnova = $ordematual + 1;
} // fecha if ordem desce
// muda o numero da ordem do link de cima ou de baixo
$sql = mysql_query("UPDATE $tabela SET ordem='$ordematual' WHERE ordem='$ordemnova'") or die(mysql_error());
// agora muda a ordem do que voce quer pra cima ou pra baixo
$sql2 = mysql_query("UPDATE $tabela SET ordem='$ordemnova' WHERE ordem='$ordematual'") or die(mysql_error());
} // fecha função
Amigo, testa esse codigo.. se der certo posta aí, se der erro posta o erro retornado..
Abraço.
obs.: se nao souber como colocar o num. da ordem nos links fala que eu coloco o codigo aqui.. agora vou almoçar, mas daqui 1h30m estou de volta..
Sem Mais[]'..
Valeu Leandro,
passei aqui pra dizer que tinha resolvido e vi tua resposta, foi mais ou menos isso que eu fiz, em essencia foi exatamente isso.
Abraço
Voc6e quer ordenar o resultado ou quer re-ordenar a os registros na tabela? :unsure: