Jump to content
JoaoVM

[Resolvido] Consulta não Responde Corretamente

Recommended Posts

JoaoVM

Boas, tenho um problema coma minha consulta sql e php, tenho um equipamento de leitor de cartões RFID e uma base de dados com vários utilizadores e respetivos cartões e seu RFID. A minha questão é quando faço a consulta, vai devolver depois na variável

$resultado_rfid_teste

, e no meu

if ($_POST['rfid'] == $resultado_rfid_teste)

, se colocar e fizer a comparação com a o numero inserido ele não funciona, mas se em vez da variável colocar e fizer a comparação com um numero existente ele funciona, não vejo onde é que a consulta está mal feita, ou é a devolução que está mal?

if (isset($_POST['rfid'])){
$rfid = $_POST['rfid'];

echo "<table align=\"center\" border=\"1\">";
echo '<tr>';
echo '<td>RFID</td>';
echo '<td>N Colaborador</td>';
echo '<tdNome</td>';
echo '<tdSobrenome</td>';
echo '<tdEstado</td>';
echo '</tr>';

$sql_rfid="SELECT ref_id, num_colab, pnome, unome,estado FROM funcionarios WHERE ref_id='$rfid';";
$resultado_rfid = mysql_query($sql_rfid);

$sql_rfid_teste="SELECT ref_id FROM funcionarios";
$resultado_rfid_teste = mysql_query($sql_rfid_teste);

//123456789
if ($_POST['rfid'] == $resultado_rfid_teste){

while ($registo = mysql_fetch_array($resultado_rfid))

{
echo '<tr>';
echo '<td>';
echo "".$registo['ref_id']."<br />";
echo '</td>';
echo '<td>';
echo "".$registo['num_colab']."<br />";
echo '</td>';
echo '<td>';
echo "".$registo['pnome']."<br />";
echo '</td>';
echo '<td>';
echo "".$registo['unome']."<br />";
echo '</td>';
echo '<td">';
echo "".$registo['estado']."<br />";
echo '</td>';
echo '</tr>';

echo '</table>';
			}
}
 else

 {

echo '</br>';  
echo '<tr>';
echo "Não funciona<br />";
echo '</tr>';


 }

}

Cumprimentos,

João Martins

Share this post


Link to post
Share on other sites
pikax

Antes de tudo, as funcoes mysql* estas desactualizadas, usa antes mysqli*

$sql_rfid_teste="SELECT ref_id FROM funcionarios"; /* Query para returnar uma tabela com varias linhas,
mas pelo o que parece so' queres uma linha, mete um WHERE etc....
*/
$resultado_rfid_teste = mysql_query($sql_rfid_teste);
//$resultado_rfid_teste == resource do mysql

//123456789
if ($_POST['rfid'] == $resultado_rfid_teste){ // ERRADO!!!!!!! tens que ir buscar o resultado da query!


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
JoaoVM

Eu quero que quando passe cartões diferentes me devolva os resultados dos diversos cartões, e se não existir aquele numero do cartão devolve a mensagem.

O resultado da query não é devolvido pela variável $resultado_rfid_teste?

Share this post


Link to post
Share on other sites
pikax

O resultado da query não é devolvido pela variável $resultado_rfid_teste?

nao estas a fazer o fetch das rows.....


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
JoaoVM

Estás a falar assim?

$sql_rfid_teste="SELECT ref_id FROM funcionarios";
$resultado_rfid_teste == mysqli_query($sql_rfid_teste);
$rfid_final == mysqli_fetch_row($resultado_rfid_teste);
//2684924428
if ($_POST['rfid'] == $rfid_final)
   {
.
.
.
.

Share this post


Link to post
Share on other sites
pikax

algo do genero.

agora deve funcionar, se nao funcionar o problema sera' da query.


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
pikax

manda de outro sitio,aqui na empresa bloqueiam esse site.

e diz tb qual e' o resultado que pretendes


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
pikax

tens que filtrar a query, do genero, mas tens que adaptar:

SELECT ref_id FROM funcionarios WHERE RFID = 52


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
pikax

mas eu quero passar cartões diferentes não quero sempre o mesmo...

tens que filtrar a query, do genero, mas tens que adaptar:

SELECT ref_id FROM funcionarios WHERE RFID = 52

suponho que saibas trabalhar com sql, ja' quem tens a query anterior "direita":

$sql_rfid="SELECT ref_id, num_colab, pnome, unome,estado FROM funcionarios WHERE ref_id='$rfid';";


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
JoaoVM

suponho que saibas trabalhar com sql, ja' quem tens a query anterior "direita":

Citar

$sql_rfid="SELECT ref_id, num_colab, pnome, unome,estado FROM funcionarios WHERE ref_id='$rfid';";

sim mas essa variável $rfid recebe o valor da variável $_POST['rfid'], quem vem de um input...nao da base de dados...

Edited by Rui Carlos

Share this post


Link to post
Share on other sites
pikax

eu nao te posso fazer a query, porque nao sei qual e' o campo que queres filtrar por...

Tambem nao posso ajudar com a query porque nao sei a estrutura dela, ja' agora tambem nao sei os dados que tens disponiveis para filtrar...


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
JoaoVM

2h1x.jpg

estes são os dados que tenho..e quero que quando passo o respetivo cartão de cada um me apareça os dados respetivos. Não posso meter mesmo as informações.

Share this post


Link to post
Share on other sites
pikax

para que e' necessario estas 2 querys?


$sql_rfid="SELECT ref_id, num_colab, pnome, unome,estado FROM funcionarios WHERE ref_id='$rfid';";
$resultado_rfid = mysql_query($sql_rfid);

$sql_rfid_teste="SELECT ref_id FROM funcionarios";
$resultado_rfid_teste = mysql_query($sql_rfid_teste);

//123456789
if ($_POST['rfid'] == $resultado_rfid_teste){

Edited by pikax

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
JoaoVM

$sql_rfid="SELECT ref_id, num_colab, pnome, unome,estado FROM funcionarios WHERE ref_id='$rfid';";
$resultado_rfid = mysql_query($sql_rfid);

Esta query é a que vai apresentar os dados depois dentro do while.

$sql_rfid_teste="SELECT ref_id FROM funcionarios";
$resultado_rfid_teste = mysql_query($sql_rfid_teste);

Esta seria a que selecionava os dados relativos ao rfid.

Não sei se estou a pensar bem....

Edited by JoaoVM

Share this post


Link to post
Share on other sites
pikax

$sql_rfid_teste="SELECT ref_id FROM funcionarios";
$resultado_rfid_teste = mysql_query($sql_rfid_teste);

Esta seria a que selecionava os dados relativos ao rfid.

Não sei se estou a pensar bem....

a query nao deveria ser:

$sql_rfid_teste="SELECT * FROM funcionarios WHERE ref_id =$_POST['rfid']";
$resultado_rfid_teste = mysql_query($sql_rfid_teste);


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
JoaoVM

opa já meti como falaste e não está a funcionar...acho que será boa ideia contornar o problema e fazer de outra forma..porque ele sem este if funciona bem, devolve-me o resultado do cartão tudo normal, com este if que me devolve a mensagem e que não, se calhar o problema até é dai, ou então e mesmo da query porque quando comparo com o numero exato de cartão ele funciona..dai pensar que é da query..

Share this post


Link to post
Share on other sites
pikax

Primeiro estavas a comparar um resource do mysql com o valor vindo por post.

depois estavas a comparar um conjunto de linhas:

com um valor vindo do POST.

Nao sei o que queres fazer com aquele if!


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
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

×
×
  • 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.