Ph3i 0 Denunciar post Postado Janeiro 26, 2011 Bom, preciso de uma ajuda! Eu não sei como se fachama essa função ou se da pra fazer isso. O que eu preciso é poder ordenar uma tabela, por exemplo, tenho uma tabela com quatro registros ai eu preciso que o terceiro fique no lugar do segundo e o segundo no lugar do terceiro, ou seja, preciso definir prioridades para os registros. Estou colocando uma tabela como exemplo do que estou tentando explicar. Valeu... Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 26, 2011 se você criar um campo 'prioridade', inteiro, e fazer o select ordenando por esse campo não resolve seu problema? Compartilhar este post Link para o post Compartilhar em outros sites
Go Back 0 Denunciar post Postado Janeiro 26, 2011 Mas ele quer mudar dinamicamente de posições e respectivamente mudar de prioridade no banco... Já fiz isso cara é muito pau... mas para me atrapalhar eu tinha um campo Data, eu tinha que mudar todas as datas. O que você pode fazer é o seguinte: 1 - Coloque a prioridade do registro como parametro no LINK da seta pra cima ou pra baixo. Ex: echo "<a href='pagina.php?alt=$res[prioridade]&sentido=cima&cod=$res[codigo]'> <img src='seta.png'> </a>"; echo "<a href='pagina.php?alt=$res[prioridade]&sentido=baixo&cod=$res[codigo]'> <img src='seta.png'> </a>"; 2 - Ao receber o valor do parametro no PHP, você pergunta o sentido que você clicou... clicou para cima, então vai subtrair -1 ao valor do GET que você tbm recebeu e atualizar o registro. 3 - Vai fazer um While na tabela com uma condição... todos os registros tenham prioridade > valor do GET + 1 e dar um update nos registor que também a prioridade seja > valor GET + 1 Compartilhar este post Link para o post Compartilhar em outros sites
Ph3i 0 Denunciar post Postado Janeiro 28, 2011 Mas ele quer mudar dinamicamente de posições e respectivamente mudar de prioridade no banco... Já fiz isso cara é muito pau... mas para me atrapalhar eu tinha um campo Data, eu tinha que mudar todas as datas. O que você pode fazer é o seguinte: 1 - Coloque a prioridade do registro como parametro no LINK da seta pra cima ou pra baixo. Ex: echo "<a href='pagina.php?alt=$res[prioridade]&sentido=cima&cod=$res[codigo]'> <img src='seta.png'> </a>"; echo "<a href='pagina.php?alt=$res[prioridade]&sentido=baixo&cod=$res[codigo]'> <img src='seta.png'> </a>"; 2 - Ao receber o valor do parametro no PHP, você pergunta o sentido que você clicou... clicou para cima, então vai subtrair -1 ao valor do GET que você tbm recebeu e atualizar o registro. 3 - Vai fazer um While na tabela com uma condição... todos os registros tenham prioridade > valor do GET + 1 e dar um update nos registor que também a prioridade seja > valor GET + 1 Cara que idéia boa, vou tentar fazer e depois posto o resultado. Valeu! Compartilhar este post Link para o post Compartilhar em outros sites
André Severino 3 Denunciar post Postado Janeiro 28, 2011 Acredito que seja melhor usar ajax(Jquery .tablesorter) É só implementar Tipo 1 - Link Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 28, 2011 uma vez fi\ isso muito facilmente com jQuery UI Sortable: http://jqueryui.com/demos/sortable/ Compartilhar este post Link para o post Compartilhar em outros sites
Go Back 0 Denunciar post Postado Janeiro 28, 2011 Mas com esse JQuery dá pra atualizar no banco ? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 28, 2011 Mas com esse JQuery dá pra atualizar no banco ? yep ele pode executar uma ação ao mudar a posição de algo. aí basta fazer uma requisição HTTTP via ajax Compartilhar este post Link para o post Compartilhar em outros sites
Ph3i 0 Denunciar post Postado Fevereiro 14, 2011 Mas ele quer mudar dinamicamente de posições e respectivamente mudar de prioridade no banco... Já fiz isso cara é muito pau... mas para me atrapalhar eu tinha um campo Data, eu tinha que mudar todas as datas. O que você pode fazer é o seguinte: 1 - Coloque a prioridade do registro como parametro no LINK da seta pra cima ou pra baixo. Ex: echo "<a href='pagina.php?alt=$res[prioridade]&sentido=cima&cod=$res[codigo]'> <img src='seta.png'> </a>"; echo "<a href='pagina.php?alt=$res[prioridade]&sentido=baixo&cod=$res[codigo]'> <img src='seta.png'> </a>"; 2 - Ao receber o valor do parametro no PHP, você pergunta o sentido que você clicou... clicou para cima, então vai subtrair -1 ao valor do GET que você tbm recebeu e atualizar o registro. 3 - Vai fazer um While na tabela com uma condição... todos os registros tenham prioridade > valor do GET + 1 e dar um update nos registor que também a prioridade seja > valor GET + 1 Go Back... preciso de mais uma ajuda! Estou fazendo a ordenação e não consegui atualizar o restante dos registros na tabela, por exemplo: Tenho 6 projetos com prioridades de 1 até 6, se eu mudar o que tem prioridade 3 pra cima ele ficará com prioridade 4, só que já existe um projeto com esta prioridade. É isso que não consigo fazer, mudar a prioridade dele pra 3 e dos demais registros da tebela. Pode me ajudar com essa? Compartilhar este post Link para o post Compartilhar em outros sites
Ph3i 0 Denunciar post Postado Fevereiro 15, 2011 Fala Pessoal... Consegui fazer de uma maneira bem simples: No arquivo index.php eu apenas exibi os dados do banco em uma tabela. <?php //Conexão com o Banco require_once('includes/php/config.php'); //Selecina os dados da tabela $SQL = mysql_query("SELECT * FROM `tecnicos` WHERE `suporte` = 'true' ORDER BY `prioridade` DESC") or die ("Erro no SELECT: ".mysql_error()); //Seleciona o valor máximo da prioridade $SQLMax = mysql_query("SELECT MAX(prioridade) FROM `tecnicos` WHERE `suporte` = 'true' ORDER BY `prioridade` DESC") or die ("Erro no SELECT MAX: ".mysql_error()); $RESMax = mysql_fetch_array($SQLMax); //Seleciona o valor mínimo da prioridade $SQLMin = mysql_query("SELECT MIN(prioridade) FROM `tecnicos` WHERE `suporte` = 'true' ORDER BY `prioridade` DESC") or die ("Erro no SELECT MIN: ".mysql_error()); $RESMin = mysql_fetch_array($SQLMin); ?> <!-- Fazendo a tabela --> <table id="myTable"> <thead> <tr> <td>Id</td> <td>Nome</td> <td>Telefone</td> <td>Ações</td> </tr> </thead> <tbody> <?php $i = '1'; while ($ROW = mysql_fetch_array($SQL)) { echo "<tr>"; echo "<td>$i</td>"; echo "<td>".$ROW['tec_nome']."</td>"; echo "<td>".$ROW['tec_telefone']."</td>"; //Se o valor máximo for igual a prioridade - Adiciona apenas a letra B (Baixo) if ($RESMax[0] == $ROW['tec_prioridade']) { echo "<td align=\"center\"><a href='orden.php?prioridade=$ROW[prioridade]&sentido=baixo&Id=$ROW[id]'>B</a></td>"; //Se o valor mínimo for igual a prioridade - Adiciona apenas a letra C (Cima) } elseif ($RESMin[0] == $ROW['tec_prioridade']) { echo "<td align=\"center\"><a href='orden.php?prioridade=$ROW[prioridade]&sentido=cima&Id=$ROW[id]'>C</a></td>"; //Se não adicina as duas letras C e B } else { echo "<td align=\"center\"><a href='orden.php?prioridade=$ROW[prioridade]&sentido=cima&Id=$ROW[id]'>C</a> <a href='orden.php?prioridade=$ROW[prioridade]&sentido=baixo&Id=$ROW[id]'>B</a></td>"; } echo "</tr>"; $i++; } ?> </tbody> </table> E no arquivo ordem.php eu fiz o seguinte: <?php //Conexão com o Banco require_once('includes/php/config.php'); //Recebo os valores via GET $prioridade = $_GET['prioridade']; $Id = $_GET['Id']; if ($_GET['sentido'] == 'cima') { //Se for para cima soma mais um no valor da prioridade $prioridade = $prioridade + 1; //Atualizo a prioridade para o Id que recebi $UPdate = mysql_query("UPDATE `tecnicos` SET `prioridade` = '$prioridade' WHERE `Id` = '$Id' LIMIT 1") or die ("Erro no UPDATE para Cima: ".mysql_error()); //Seleciona o Id que tenha a mesma prioridade, mas que seja diferente do Id que recebi $SQL = mysql_query("SELECT * FROM `tecnicos` WHERE `suporte` = 'true' AND `prioridade` = '$prioridade' AND `Id` <> '$Id' ORDER BY `prioridade` DESC") or die ("Erro no SELECT: ".mysql_error()); $ROW = mysql_fetch_array($SQL); if ($SQL) { //Se retornar algo: Subitrair um da prioridade $prioridade = $prioridade - 1; $id = $ROW['Id']; //Atualiza o registro com sua nova prioridade -1 $UPdate = mysql_query("UPDATE `tecnicos` SET `prioridade` = '$prioridade' WHERE `Id` = '$id' LIMIT 1") or die ("Erro no UPDATE para Cima: ".mysql_error()); header("Location: index.php"); } } else { //Se for para baixo subitrai um no valor da prioridade $prioridade = $prioridade - 1; //Atualizo a prioridade para o Id que recebi $UPdate = mysql_query("UPDATE `tecnicos` SET `prioridade` = '$prioridade' WHERE `Id` = '$Id' LIMIT 1") or die ("Erro no UPDATE para Cima: ".mysql_error()); //Seleciona o Id que tenha a mesma prioridade, mas que seja diferente do Id que recebi $SQL = mysql_query("SELECT * FROM `tecnicos` WHERE `suporte` = 'true' AND `prioridade` = '$prioridade' AND `Id` <> '$Id' ORDER BY `prioridade` DESC") or die ("Erro no SELECT: ".mysql_error()); $ROW = mysql_fetch_array($SQL); if ($SQL) { //Se retornar algo: Soma mais um na prioridade $prioridade = $prioridade + 1; $id = $ROW['Id']; //Atualiza o registro com sua nova prioridade +1 $UPdate = mysql_query("UPDATE `tecnicos` SET `prioridade` = '$prioridade' WHERE `Id` = '$id' LIMIT 1") or die ("Erro no UPDATE para Cima: ".mysql_error()); header("Location: index.php"); } } ?> Compartilhar este post Link para o post Compartilhar em outros sites