Consulta SQL com WHERE e FORM

Enviada por Vinicius Fernandes 
Vinicius Fernandes
Consulta SQL com WHERE e FORM
23 de July de 2012 às 09:36PM
Olá pessoal, todos bem? Eu sou novo aqui no Fórum, e antes de postar esta mensagem, até tentei achar algo que pudesse me ajudar, mas não consegui.

Sou um programador PHP bem iniciante, então me perdoem caso haja algum erro bem grosseiro! Meu intuito é realmente aprender. :)

Basicamente o que eu quero é:

Tenho 2 tabelas no sistema onde faço um INNER JOIN pelo ID do usuário.

Quero ter uma página em HTML com um FORM onde o usuário possa digitar o ID desejado e então, chamar um consultaid.php que fará um filtro (WHERE pelo ID do usuário).

Tenho o seguinte form e query:

form.html

<html>
<body>
<form action="consultaid.php" method="get">
ID User: <input type="text" name="A.id" />
<input type="submit" />
</form>
</body>
</html>

consultaid.php

$result = mysql_query("SELECT B.nome FROM usuarios AS A INNER JOIN desc_usuarios AS B ON A.id = B.id WHERE $_GET[A.id]");

echo "<table border='1'>
<tr>
<th>Nome</th>
</tr>";

while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['nome'] . "</td>";
echo "</tr>";
}
echo "</table>";

mysql_close($con);
?>

Se eu tirar a clausula WHERE, a consulta funciona sem problemas.

Alguém pode me ajudar?

Desde já eu agradeço.
Vinicius Fernandes
Re: Consulta SQL com WHERE e FORM
23 de July de 2012 às 09:55PM
PS: A consulta WHERE tem o sinal de ' = ' depois do comando; Apenas faltou este detalhe na hora de repassar o código aqui, rs.
Marcos Regis
Re: Consulta SQL com WHERE e FORM
24 de July de 2012 às 10:41PM
Primeiro passo. Procure aprender "Boas práticas de programação em PHP".

Sempre que possível, separe as coisas.

$id = isset($_GET['A.id'])?intval($_GET['A.id']):null; // garanta que independente de passar ou não um id válido voce tenha um valor para evitar Warnings

// Gere uma string SQL para que possa debugar depois em caso de erros
$sql = 'SELECT B.nome FROM usuarios AS A INNER JOIN desc_usuarios AS B ON A.id = B.id WHERE A.id = ' . $id;


$result = mysql_query($sql) or trigger_error('Erro na instrucao ' . $sql . ' | Detalhes : ' . mysql_error(),E_USER_ERROR); // Acostume-se a sempre verificar se instrução de banco executam com sucesso
Vinicius Fernandes
Re: Consulta SQL com WHERE e FORM
26 de July de 2012 às 01:45PM
Marcos,

Obrigado pela sua ajuda e me atentarei aos seus comentários, mas:

Eu ainda não entendi como eu pegarei o ID do meu form HTML que o usuário inputa.

Poderia me explicar melhor?

Abs!
Marcos Regis
Re: Consulta SQL com WHERE e FORM
26 de July de 2012 às 02:56PM
$_GET ou $_REQUEST recupera valores passados através do método GET.

No seu código há um campo no formulário com name="A.id" o que significa que quando for submetido o conteúdo deste campo estará em $_GET['A.id']
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.