Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas ao retornar valores


deivitepopo

Pergunta

Caros estou com um problema ao retornar valores do banco de dados,

$filtro = $_GET[codigo]; // recebe o parametro da url está funcionando perfeitamente

$sql= "select * from candidato where codigo = '$filtro'";

$r = mysql_query($sql);

$rs = mysql_fetch_array($r);

$cod = $rs["codigo_cargo"];

$codconc = $rs["codigo_concurso"];

$codinscricao = $rs['numero_inscricao'];

A VARIAVEL $cod recebe o id ta tabela cargos que é inserido quando o candidato faz a sua inscrição.

Estou usando essa variavel como filtro para selecionar o nome do cargo do candidato na tabela cargos no select abaixo.

Porem não consigo retornar o codigo que é na verdade a variavel $cod e os outros dados não retorna, como nome do cargo, valor.

// selecionando a tabela cargos

$sqlc= "select * from cargo where codigo = '$cod'";

$rc = mysql_query($sqlc);

$rsc = mysql_fetch_array($rc);

//$ncarg = $rs["nome"];

$vlr = $rsc["valor"];

//$n = str_pad($n, 7, "0", STR_PAD_LEFT);

//echo $n;

// selecionando a tabela concurso

$sqlcc= "select * from concurso where codigo = '$codconc'";

$rcc = mysql_query($sqlcc);

$rscc = mysql_fetch_array($rcc);

$nconc = $rscc["nome"];

echo $nconc; // não retorna nada e nem da erro

Pensei que poderia ser o mysql_fetch_array, que por algum motivo so estava retornando a primeira linha, mas ate agora não conseguir desvendar.

alguém sabe o que pode ser isso?

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Caso sua query retorne mais de uma linha, utilize a função mssql_fetch_array(); desta forma:

while ($rscc = mysql_fetch_array($rcc)) {
    print $rscc['nome'] . '</br>';  
}

Editado por Romero Dias
Link para o comentário
Compartilhar em outros sites

  • 0

Meu caro Romero, fiz esse procedimento, porem o resiltado é o mesmo ele não me retorna nada nem erro me retorna.

meu codigo ficou assim:

<?php include ('conexao_mysql.php');

$filtro = $_GET[codigo];

$sql = "select * from candidato where codigo = '$filtro'";

$cand = mysql_query($sql);

$rscand = mysql_fetch_array($cand);

$codcarg = $rscand["codigo_cargo"];

$codinscricao = $rscand["numero_inscricao"];

//echo $sql;

//echo $codcarg;

//echo $codinscricao;

$sqlcargo = "select * from cargo where codigo = $codcarg";

$rscarg = mysql_query($sqlcargo);

//$rscargo = mysql_fetch_array($rscarg);

while ($rc = mysql_fetch_array($rscarg)) {

$cargonome = $rc['nome'];

$cargovalor = $rc['valor'];

}

echo $cargonome;

echo $cargovalor;

?>

Caso sua query retorne mais de uma linha, utilize a função mssql_fetch_array(); desta forma:

while ($rscc = mysql_fetch_array($rcc)) {
    print $rscc['nome'] . '</br>';  
}

Link para o comentário
Compartilhar em outros sites

  • 0

Tente fazer um teste com o script abaixo:

<?php
$sqlcargo = "select * from cargo where codigo = $codcarg";
$rscarg = mysql_query($sqlcargo);
//$rscargo = mysql_fetch_array($rscarg);

//Verifica se a query retornou algum registro
if(mysql_num_rows($rscarg)){
    while ($rc = mysql_fetch_array($rscarg)) {
        echo $rc['nome'] . ' - ' . $rc['valor'] . '<br>';
    }
} else {
    echo 'Sua pesquisa não encontrou nenhum registro!';
}
?>

Link para o comentário
Compartilhar em outros sites

  • 0

ele cai no else, Sua pesquisa não encontrou nenhum registro

porem mandei ele imprimir $sqlcargo

ele imprime:

Sua pesquisa não encontrou nenhum registro!

A variavel sqlcargo retorna :select * from cargo where codigo = 4

o select do cargo não funciona quando coloco where codigo = $codcarg

não sei porque

Tente fazer um teste com o script abaixo:

<?php
$sqlcargo = "select * from cargo where codigo = $codcarg";
$rscarg = mysql_query($sqlcargo);
//$rscargo = mysql_fetch_array($rscarg);

//Verifica se a query retornou algum registro
if(mysql_num_rows($rscarg)){
    while ($rc = mysql_fetch_array($rscarg)) {
        echo $rc['nome'] . ' - ' . $rc['valor'] . '<br>';
    }
} else {
    echo 'Sua pesquisa não encontrou nenhum registro!';
}
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Se deixar sem a variavel no where ele imprime todos os registros da tabela.

O que mais me impresiona é que estava funcionando normalmente, e sexta o bichão parou não sei porque.

ele cai no else, Sua pesquisa não encontrou nenhum registro

porem mandei ele imprimir $sqlcargo

ele imprime:

Sua pesquisa não encontrou nenhum registro!

A variavel sqlcargo retorna :select * from cargo where codigo = 4

o select do cargo não funciona quando coloco where codigo = $codcarg

não sei porque

Tente fazer um teste com o script abaixo:

<?php
$sqlcargo = "select * from cargo where codigo = $codcarg";
$rscarg = mysql_query($sqlcargo);
//$rscargo = mysql_fetch_array($rscarg);

//Verifica se a query retornou algum registro
if(mysql_num_rows($rscarg)){
    while ($rc = mysql_fetch_array($rscarg)) {
        echo $rc['nome'] . ' - ' . $rc['valor'] . '<br>';
    }
} else {
    echo 'Sua pesquisa não encontrou nenhum registro!';
}
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Se você colocar manualmente codigo = 4, a query funciona?

<?php
$sqlcargo = "select nome,valor from cargo where codigo = 4";
?>

Uma boa prática é definir os campos que a query irá buscar, ou seja, não usar o *.

Aparentemente o erro não está na codificação. Já verificou se no banco existem registros com código 4?

Pois, você disse que quando remove o where, a query funciona, trazendo os registros de cargos. Correto?

Editado por Romero Dias
Link para o comentário
Compartilhar em outros sites

  • 0

Olá Romero,

já definir o codigo = 4 e té com outros valores que tem na tabela e não funciona, estou ate achando que seja erro na tabela mas como falamos se tirar o parametro do where ele roda, ele so não aceita com a clausula where.

Porem nesse mesmo codigo ele funciona com a tabela concurso e candidato normalmente. e com a mesma condição é isso que não da pra entender.

Na verdade ele está funcionando perfeitamente já a uns seis meses e de uma ora pra outra parou de funcionar.

O que fazer hshshshs

Se você colocar manualmente codigo = 4, a query funciona?

<?php
$sqlcargo = "select nome,valor from cargo where codigo = 4";
?>

Uma boa prática é definir os campos que a query irá buscar, ou seja, não usar o *.

Aparentemente o erro não está na codificação. Já verificou se no banco existem registros com código 4?

Pois, você disse que quando remove o where, a query funciona, trazendo os registros de cargos. Correto?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...