Jump to content

[Resolvido] Selecionar uma linha de uma consulta feita à base de dados


Zeutrex
 Share

Recommended Posts

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

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

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 by nelsonr
  • Vote 1
Link to comment
Share on other sites

É 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 by Zeutrex
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.