Zeutrex Posted August 7, 2014 at 07:53 AM Report Share #564219 Posted August 7, 2014 at 07:53 AM 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 at 08:31 AM Report Share #564220 Posted August 7, 2014 at 08:31 AM 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 at 08:41 AM Author Report Share #564221 Posted August 7, 2014 at 08:41 AM 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 at 09:08 AM Report Share #564226 Posted August 7, 2014 at 09:08 AM (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 at 09:48 AM by nelsonr 1 Report Link to comment Share on other sites More sharing options...
Zeutrex Posted August 7, 2014 at 09:46 AM Author Report Share #564231 Posted August 7, 2014 at 09:46 AM (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 at 09:50 AM by Zeutrex Link to comment Share on other sites More sharing options...
nelsonr Posted August 7, 2014 at 09:49 AM Report Share #564232 Posted August 7, 2014 at 09:49 AM (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 at 09:49 AM 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