• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

xploit

colocacao de posicoes

15 mensagens neste tópico

Boa noite comunidade mais uma vez vos xateio com as minhas duvidas lol agora e o seguinte, tenho uma tabela com duas particoes POSICAO e MENU, na tabela posicao ta com autoincrement , e nos menos estao os menus por ordem, o que quero fazer e o seguinte :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<form action="menu.php?action=save" method="post">

<select name="lista_menus">
<?
//*####LIGACAO A BASE DE DADOS####//
$conecao=mysql_connect ('localhost', 'root', '12345678');
$base_dados=mysql_select_db('webexpress');
//*####LIGACAO A BASE DE DADOS####//
$consulta_de_dados=mysql_query("SELECT *FROM menus order by 'posicao'");
$n="1";
$n2="1";
while($coluna=mysql_fetch_array($consulta_de_dados)):
$menu=$coluna['menu'];
$posicao=$coluna['menu'];
echo '<option name="menu_default" value="'.$menu.'">'.$menu.'</option>';
$menus1[$n] = "$menu";
$n++;
endwhile;
echo '</select>';
?>
Depois de:<input name="alterar" value="depois" type="radio" />

Antes de:<input name="alterar" value="antes" type="radio" />
<?
echo'<select name="lista_menus_editar">';
$consulta_de_dados=mysql_query("SELECT *FROM menus order by 'posicao'");
while($coluna=mysql_fetch_array($consulta_de_dados)):
$menu=$coluna['menu'];
$posicao=$coluna['menu'];
echo '<option name="menu_alterado" value="'.$menu.'">'.$menu.'</option>';
$menus[$n] = "$menu";
$n++;
endwhile;
echo '</select>';
echo '<br /><br />';
?>
<input type="submit" value="enviar" /></form><br />
<?




foreach ($menus1 as $lista) {

    echo $n2.'-'.$lista.' | ';
$n2++;
}

?>



<?
if($_GET['action'] == "save") {
$alterar=$_POST['alterar'];
$menu_default=$_POST['lista_menus'];
$menu_alterado=$_POST['lista_menus_editar'];

if($alterar=="depois"){
echo $menu_alterado;
echo $menu_default;
}

if($alterar=="antes"){
echo $menu_default;
echo $menu_alterado;
}



}


?>

Quero poder organizar as posicoes desses elementos, como existe no MYSQL o AFTER etc.. so que nao sei como fazer isto inserir na base de dados ja com os menus reorganizados pela ordem que vem nas variaveis... alguma ideia?

teste874.jpg

Cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva, apaguei outras respostas que não eram relacionadas com a dúvda.

Não percebi a tua dúvida. Queres alterar a ordem pela qual aparecem os resultados ou queres alterar a ordem das colunas?

Basicamente isso tudo se faz com recurso ao SQL, ou seja, só terás de alterar o teu pedido à base de dados. Mas diz aí em concreto o que queres que o teu tópico está dificil de perceber. Isto é uma coisa simpels de resolver.

Toma atenção à escrita, o teu tópico está dificil de perceber, com alguns erros e linguagem SMS que é contra as regras deste fórum. Usa tambem o gueshi. Clica nos links da minha assinatura.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas pedro, em relacao a escrita acentos, etc nao consigo por porque tenho um virus no computador que nao faco a minima como tirar que sempre que ponhos acentos fica assim: ´´e  ~~a ..

E o seguinte, isto e uma tabela de um gestor de conteudos, onde estao os menus por ordem do 1 ate ao menu final.. o que eu quero e que o cliente possa alterar a ordem numerica que se apresentam os menus no sei site e obviamente na tabela.

na tabela MENUS tenho:

posicao(aut_increment10)      menu(varchar100)

1                                               roupa
2                                               armario
3                                               jardim
4                                               parque

Logo no site do cliente vai estar no menu dele pela ordem numerica que estiver na tabela..

No painel de controlo eu vou ter uma parte para reorganizar as posicoes dos menus que e algo deste genero:

teste874.jpg

para o cliente ter total autonomia no seu gestor de conteudos, e organiza-los do seu jeito.

Exemplo:

(combobox[roupa])  depois de(x)    (combobox[parque])  (SUBMIT)

se eu fizesse esta operacao na tabela ficaria assim:

posicao(aut_increment10)      menu(varchar100)

1                                              armario
2                                              jardim
3                                               parque
4                                               roupa

Penso que agora ja esteja mais elucidativo, por onde "lhe pego" ?

Cumprimentos e obrigado pelo edit pedro

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E que tá uma coisa do género:

caixash1.jpg

Tinhas dois selects (as duas caixas não passam de 2 selects com a propriedades size definida), e uns botões, que com javascript organizavam o conteúdo. Depois, era enviar com javascript, e penso eu que os conteúdos iriam aparecer por ordem no PHP.

Requisitos: ter o JS activo, e trabalhar a ordem no PHP. Por acaso nunca fiz nada semelhante, por isso não sei se no PHP os valores ficam ordenados ou não.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ou então podes fazer como o joomla por exemplo, simplesmente um atributo 'ordem' cujos atributos têm que ser único e que podem ser editados usando um formulário normal.

Não é tão prático, mas é capaz de ser mais simpels de implementar pois não requere javascript.

Tens um erro no desenho da tua base de dados. Esse campo chama-se 'posição' mas mais não é que um id, se é a posição então não deve ser autoincremente nem deve ser o identificador principal.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

olha se essas opçoes que tu queres sao para cada utilizador, e se existe login no site, se existir.

podes criar um formulario aonde ele escolhe a ordem e depois gravas um ficheiro, ou numa base de dados respectivamente esse ordem, depois quando fores a ler escreve nessa ordem...

eu nao entendi bem a tua duvida

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens que guardar a ordem personalizada na base de dados.

A tua estrutura actual, aparentemente, não o deixa fazer.

Se calhar eu faria uma tabela com o código do utilizador, o código do menu, e a ordem que ele quer. Depois era só pegar o menu da tabela menus e a ordem da tabela "menus_personalizados".

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ou então podes fazer como o joomla por exemplo, simplesmente um atributo 'ordem' cujos atributos têm que ser único e que podem ser editados usando um formulário normal.

Não é tão prático, mas é capaz de ser mais simpels de implementar pois não requere javascript.

Tens um erro no desenho da tua base de dados. Esse campo chama-se 'posição' mas mais não é que um id, se é a posição então não deve ser autoincremente nem deve ser o identificador principal.

Puderias explicar melhor essa formula?

Tens que guardar a ordem personalizada na base de dados.

A tua estrutura actual, aparentemente, não o deixa fazer.

Se calhar eu faria uma tabela com o código do utilizador, o código do menu, e a ordem que ele quer. Depois era só pegar o menu da tabela menus e a ordem da tabela "menus_personalizados".

Pois , mas o problema e em eu conseguir, que o cliente organize os menus a seu gosto, e depois isso seja enviado pa BD por ordem que ele efectou.. e ai que ta a "manha" que nao sei como fazer isso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

podes criar campos input, em que ele insere as ordens que quer,

por exemplo

3-4-1-2-5

podes usar so um input em que ele separa por um elemento o campo, por uma simbolo ( - _ , . * + ? ...)

e depois fazes um explode e separas para leres separado e escrever o menu nessa ordem, ou fazes um input para cada ordem, so fazes isto se for poucos os campos senao mais vale perder tempo a fazer com um comando javascript um select em que selecionas e aparece por baixo a ordem, se quiseres tipo isto

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<title>JS test</title>
<script type="text/javascript">




function teste(){
		var x=document.form1.campo1.value;
if( x=='lixo')
	return;
		var y=document.getElementById('altera').innerHTML;


		document.getElementById('altera').innerHTML=y+"<br>"+x;

}



</script>
</head>
<body>

<form name="form1" action ="#" >
<select name="campo1" onchange="teste()" >
<option value="lixo" ></option>
<option value="1" >1</option>
<option value="2" >2</option>
<option value="3" >3</option>
</select>

<br><br>

<div id="altera" > </div>


</form>


<br><br>
<div id="altera" ></div>
</body>
</html>

so tens que acrescentar gora para nao aceitar elementos repetidos, para excluir tambem, que nao e dificil

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

exacto dessa forma tambem era possivel mas ha clientes que tem imensos menus a volta de 100... tornava se muito complicado e trabalhoso.. eu cria fazer do genero como tem no PHPMYADMIN:

zeste389.jpg

So no phpmyadmin so e possivel ordenar quando se insere um campo, eu cria ordenar ja com os campos inseridos ,  um update nas posicoes deles..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao tenho exemplo mas posso fazerte um exemplo, ja o que te meti em cima foi feito no momento, nao tinha nada disso, assim quando precisar de algo parecido ja tenho uma ideia como se faz.

tu queres utilizar a ordem que o utilizador escolhe que apareça na pagina correcto??

so ha uma questao tem que aprecer as opçoes todas ou so as que ele quer??(isto altera o codigo)

rsp a estas duas perguntas, e eu depois façote um exemplo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ele vai escolher a ordem que quer vai aparecer na pagina e gravar no banco a ordem que ele escolheu

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao me rsp ao que perguntei

ele tem 20 opçoes disponiveis, ele tem que selecionar as 20 pela ordem que quer, ou pode simplesmente escolher 5, e essas 5 ficam pela ordem que ele quer??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora