deivitepopo Postado Outubro 11, 2010 Denunciar Share Postado Outubro 11, 2010 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 erroPensei 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romero Dias Postado Outubro 11, 2010 Denunciar Share Postado Outubro 11, 2010 (editado) 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 Outubro 11, 2010 por Romero Dias Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 deivitepopo Postado Outubro 11, 2010 Autor Denunciar Share Postado Outubro 11, 2010 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>'; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romero Dias Postado Outubro 11, 2010 Denunciar Share Postado Outubro 11, 2010 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!'; } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 deivitepopo Postado Outubro 12, 2010 Autor Denunciar Share Postado Outubro 12, 2010 ele cai no else, Sua pesquisa não encontrou nenhum registroporem mandei ele imprimir $sqlcargoele imprime:Sua pesquisa não encontrou nenhum registro!A variavel sqlcargo retorna :select * from cargo where codigo = 4o select do cargo não funciona quando coloco where codigo = $codcargnão sei porqueTente 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!'; } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 deivitepopo Postado Outubro 12, 2010 Autor Denunciar Share Postado Outubro 12, 2010 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 registroporem mandei ele imprimir $sqlcargoele imprime:Sua pesquisa não encontrou nenhum registro!A variavel sqlcargo retorna :select * from cargo where codigo = 4o select do cargo não funciona quando coloco where codigo = $codcargnão sei porqueTente 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!'; } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romero Dias Postado Outubro 12, 2010 Denunciar Share Postado Outubro 12, 2010 (editado) 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 Outubro 12, 2010 por Romero Dias Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 deivitepopo Postado Outubro 12, 2010 Autor Denunciar Share Postado Outubro 12, 2010 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 hshshshsSe 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Stoma Postado Outubro 13, 2010 Denunciar Share Postado Outubro 13, 2010 Qual é o tipo da coluna codigo? Integer? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
deivitepopo
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
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.