Zeutrex Posted August 7, 2014 Report Share Posted August 7, 2014 Boas! Tenho um problema, e por isso dirigir-me aqui.. Tenho uma tabela que é criada automaticamente com uma lista de dados. Até ai, funca sem problemas. <?php $consulta=("SELECT idTPedidos,TUnome,Departamento,Assunto,Pedido From TPedidos where Resolvido = 0") or die(mysql_error()); $pedidos=mysql_query($consulta) or die(mysql_error()); while($reg=mysql_fetch_array($pedidos)) { $x = 0; echo '<tr class="trr"><td>'.$reg['idTPedidos'].'</td><td>'.$reg['TUnome'].'</td><td>'.$reg['Assunto'].'</td><td>'. $reg['Pedido'] .'</td><td>'. $reg['Departamento'] .'</td><td><input name="'.$x.'" type="submit" value="Editar"</td></tr>'; $x++; } ?> Agora, eu tentei um pouco inventar pois nao sei a solução para o meu problema. E tentei fazer um contador para um botao, isto é, tentei dar-lhe um nome(name) atraves de numeros(o tal contador $x ). [O tal contador que vos estou falar, tem de mover o scroll na horizontal no codigo que postei anteriormente para ver] Sempre que quero editar essa consulta ele vai abrir uma outra janela, com esses mesmos campos dessa linha. Para selecionar apenas e só essa linha, usei uma outra query: <?php $x = $_POST['x']; $consulta=("SELECT * FROM TPedidos limit [b][u]{$_POST['x']}[/u][/b],1") or die(mysql_error()); $pedidos=mysql_query($consulta) or die(mysql_error()); while($reg=mysql_fetch_array($pedidos)) { $id = $reg['idTPedidos']; $nome = $reg['TUnome']; $departamento = $reg['Departamento']; $assunto = $reg['Assunto']; $pedido = $reg['Pedido']; } ?> Eu tenho um output do meu browser com a seguinte mensagem de erro: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1" Penso eu, ser o problema do {$_POST['x']}.. Se tiverem alguma opinião sobre o problema, fico grato! Se houver uma maneira mais facil e menos confusa, aceito ! Obrigado, por qualquer for a ajuda! Link to comment Share on other sites More sharing options...
nelsonr Posted August 7, 2014 Report Share Posted August 7, 2014 Boas, essa tabela não tem um identificador unico? (tipo autonumber? É preferivel filtrar o registo por um identificador unico do que usares o limit, porque a posição desse registo pode ter mudado entre o desenhares a tabela e o editares. Link to comment Share on other sites More sharing options...
Zeutrex Posted August 7, 2014 Author Report Share Posted August 7, 2014 Sim tem, neste caso é o idTPedidos a Primary Key. Eu queria selecionar uma linha, no meio de varias... Eu encontrei o que queria mas foi com a função rand(). Se for com o identificador unico como faltaste como poderei fazer com a tal situação do botao+query? Penso nao estar a facilitar a explicação, pois nao? :S Se retirar o {$_POST['x']} e substituir por outro numero (utilizei o 0 no codigo a baixo) em concreto, abre sempre o mesmo pedido... mesmo clicando em linhas diferentes. Por exemplo, se tiver: <?php $x = $_POST['x']; $consulta=("SELECT * FROM TPedidos limit 0,1") or die(mysql_error()); $pedidos=mysql_query($consulta) or die(mysql_error()); while($reg=mysql_fetch_array($pedidos)) { $id = $reg['idTPedidos']; $nome = $reg['TUnome']; $departamento = $reg['Departamento']; $assunto = $reg['Assunto']; $pedido = $reg['Pedido']; } ?> Ele apenas mostra a primeira linha da consulta, independentemente se escolher a ultima linha da lista. Queria arranjar forma de colocar esse valor, numa variavel vinda do botao "editar". Link to comment Share on other sites More sharing options...
nelsonr Posted August 7, 2014 Report Share Posted August 7, 2014 (edited) O botão está a fazer um post, julgo não ser das melhores formas de fazer esse tipo de operações. Talvez possas usares um link para editar, ficando a tabela assim (altera pagina.php para a tua pagina) (nao testado): echo '<tr class="trr"><td>'.$reg['idTPedidos'].'</td><td>'.$reg['TUnome'].'</td><td>'.$reg['Assunto'].'</td><td>'. $reg['Pedido'] .'</td><td>'. $reg['Departamento'] .'</td><td><a href="pagina.php?edit='.$reg['idTPedidos'].'">Editar</a></td></tr>' E no inicio do ficheiro, verificas se estás em modo de edição if(isset($_GET['edit'])) { $consulta=("SELECT * FROM TPedidos WHERE idTPedidos=".intval($_GET['edit'])) or die(mysql_error()); //... } Edited August 7, 2014 by nelsonr 1 Report Link to comment Share on other sites More sharing options...
Zeutrex Posted August 7, 2014 Author Report Share Posted August 7, 2014 (edited) É isso mesmo, já funca! 😄 Muito obrigado ! Obs: falta um 'a' no excerto do teu código(<a href="pagina.php?edit='.$reg['idTPedidos'].'">Editar</a>), isto para futuramente este post ajudar alguém.. echo '<tr class="trr"><td>'.$reg['idTPedidos'].'</td><td>'.$reg['TUnome'].'</td><td>'.$reg['Assunto'].'</td><td>'. $reg['Pedido'] .'</td><td>'. $reg['Departamento'] .'</td><td><a href="pagina.php?edit='.$reg['idTPedidos'].'">Editar</a></td></tr>' Edited August 7, 2014 by Zeutrex Link to comment Share on other sites More sharing options...
nelsonr Posted August 7, 2014 Report Share Posted August 7, 2014 (edited) Obs: falta um 'a' no excerto do teu código É o que dá escrever código sem testar 😄 Já editei para ficar correcto Edited August 7, 2014 by nelsonr Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now