JRRC 0 Denunciar post Postado Novembro 28, 2009 Bom galera meu problema é o seguinte, para mim poder visualizar alguns exames de um determinando cliente eu preciso saber qual o ID do seu exame, no entanto da forma que estou fazendo aqui ele está apenas passando um unico ID (ID = 2) na url para todos os exames, meu código está assim: $sql = "SELECT anam.id AS anamID FROM anamnese AS anam, cliente WHERE cliente.id = anam.cliente_id"; $resultado = mysql_query($sql); $linha = mysql_fetch_array($resultado); $anamID = $linha[anamID]; E na URL estou passando os parametros assim: <div><a href="index.php?link=46&codigo=<?php echo $anamID?>"> Aparentemente parece está correto, mas os valores passam apenas assim http-~~-//localhost/safen/index.php?link=46&codigo=2 para qualquer cliente, ou seja, todos os cliente aparecem apenas os exames do ID = 2. O que eu gostaria era que de acordo com id do cliente (cliente.id) fosse referenciado com o seu id que está armazenado na tabela anamnese (anamnese.cliente_id) e então aparecesse o seu respectivo exame. Por exemplo tenho os cliente com o ID Tabela cliente com o seguites IDs: ID 1 2 3 Tabela anamese com o seguites IDs e cliente_id's: ID Cliente_id 1 ------ 3 2 ------ 1 3 ------ 2 Então o cliente com ID = 1 chamasse o exame com ID = 2, já que sua chave estrangeira está armazenada no exame com ID = 2 Alguém por favor poderia me ajudar a solucionar este problema ?! Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 28, 2009 Sua consulta não está usando variável. Ou seja, o valor não está vindo da URL. Não sei como está aparecendo sempre 2. O Where deve usar a variável da URL para buscar o exame desejado. Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Novembro 28, 2009 Sua consulta não está usando variável. Ou seja, o valor não está vindo da URL. Não sei como está aparecendo sempre 2. O Where deve usar a variável da URL para buscar o exame desejado. Então eu deveria fazer a consulta da forma que está abaixo: <?php include "./conexao.php"; $codigo = $_GET["codigo"]; $sql = "SELECT anam.id AS anamID FROM anamnese AS anam WHERE anam.id = '$codigo'"; $resultado = mysql_query($sql); $linha = mysql_fetch_array($resultado); $anamID = $linha[anamID]; E o link continua da forma que está, ou seja, assim: index.php?link=45&codigo=<?php echo $anamID ?> Porque se for dessa forma quando clik para visualizar algum exame a url fica assim: http-~~-//localhost/safen/index.php?link=46&codigo= Como dá para perceber na URL não nenhum valor, onde que o erro pode está nessa consulta ?! Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Novembro 28, 2009 $anamID = $linha[anamID]; Faltam umas aspas aih... Tente: $anamID = $linha['anamID']; Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Novembro 28, 2009 Meu código estaá assim: <?php include "./conexao.php"; $codigo = $_GET["codigo"]; $sql = "SELECT anam.id AS anamID FROM anamnese AS anam WHERE anam.id = '$codigo'"; $resultado = mysql_query($sql); $linha = mysql_fetch_array($resultado); $anamID = $linha[anamID]; ?> <div class="titulo_content"> <h1>Ver Exames</h1> </div> <br /> <div class="lista_links"> <div><a href="index.php?link=46&codigo=<?php echo $anamID?>"> <h3>Anamnese</h3></a></div></div> E na url se no lugar de $anamID eu colocar $codigo ele fica pegando o codigo referente a consulta e não ao exame Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 28, 2009 use mysql_num_rows para verificar se a consulta realmente está retornando resultados Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Novembro 28, 2009 use mysql_num_rows para verificar se a consulta realmente está retornando resultados Fiz da seguinte forma que está abaixo e ele está mostrando-me "0" $sql = "SELECT anam.id AS anamID FROM anamnese AS anam WHERE anam.id = '$codigo'"; $resultado = mysql_query($sql); $linha = mysql_num_rows($resultado); echo "$linha"; Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Novembro 28, 2009 Significa então que não está retornando nenhum valor na sua consulta. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Novembro 28, 2009 Significa então que não está retornando nenhum valor na sua consulta. Carlos Eduardo Então o que que está errado na consulta, para ela não está retornando nenhum valor ?! Hospedei o sistema aqui nesse link http://sharex.xpg.com.br/files/7701261591/safen.rar.html caso alguém queira baixa-lo e testar para ver se consegue ajeitar este problema e me dá ajuda ainda mais é claro, ai está.. Se eu não conseguir ajeitá-lo irei entregar da forma quee está se tirar uma boa nota bem.. se não, pelo menos tentei :( Só deixando o caminho onde está dando esse problema é em safen >> avaliacao >> ver_exames.php o banco está dentro do arquivo (safen.sql). Obrigado pela ajuda de todos.. Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Novembro 28, 2009 Significa que não tem nenhum valor no banco de dados que corresponda aos critérios que você está pesquisando. Imprima a query antes de executar e tente rodar diretamente no BD (PHPMyAdmin ou outro) e veja se retorna alguma coisa. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Novembro 28, 2009 O que mostra se você fizer isso? echo $codigo; Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Novembro 28, 2009 Significa que não tem nenhum valor no banco de dados que corresponda aos critérios que você está pesquisando. Imprima a query antes de executar e tente rodar diretamente no BD (PHPMyAdmin ou outro) e veja se retorna alguma coisa. Carlos Eduardo Usando Mysql Front e fazendo a pesquisa pela seguinte seleção SELECT anam.id, cliente.id FROM anamnese AS anam, cliente WHERE cliente.id = anam.cliente_id ele me retorna o valor do ID da tabela anamnese e o ID da tabela cliente. Mais eu fazendo dessa forma que está abaixo e mandando imprimir o mysql_query o resultado é o seguinte Resource id #8 que négocio é esse mesmo que foi imprimido ?! $sql = "SELECT anam.id , cliente.id FROM anamnese AS anam, cliente WHERE cliente.id = anam.cliente_id"; $result = mysql_query($sql); echo "$result"; Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Novembro 28, 2009 O que mostra se você fizer isso? echo $codigo; Com a consulta dessa forma abaixo: $sql = "SELECT anam.id , cliente.id FROM anamnese AS anam, cliente WHERE anam.id = '$codigo'"; $result = mysql_query($sql); Ele me retorna o valor correspondente a cada ID da consulta. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 28, 2009 Você sabe o que está cadastrado na tabela? Como o Matias falou, não está havendo erro. Apenas não há registro para ser buscado. Tente executar um SELECT sem condições e ver o que é retornado: SELECT anam.id , cliente.id FROM anamnese AS anam, cliente Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Novembro 28, 2009 Você sabe o que está cadastrado na tabela? Como o Matias falou, não está havendo erro. Apenas não há registro para ser buscado. Tente executar um SELECT sem condições e ver o que é retornado: SELECT anam.id , cliente.id FROM anamnese AS anam, cliente Fiz a seguinte consulta abaixo: $sql = "SELECT anam.id AS clienteAnam FROM anamnese AS anam, cliente"; $result = mysql_query($sql); echo "$result"; E ela me retorna o seguinte valor Resource id #8.. sinceramente não entendo que erro é esse.. E quando faço uma consulta da forma que está abaixo aparece o seguinte resultado Array $sql = "SELECT anam.id AS clienteAnam FROM anamnese AS anam, cliente WHERE cliente.id = anam.cliente_id"; $resultado = mysql_query($sql); $linha = mysql_fetch_array($resultado); echo "$linha"; $clienteAnam = $linha[clienteAnam]; E quando faço da forma que está abaixo aparece-me o valor 2 que é o que está atribuindo valor a todas as consultas $sql = "SELECT anam.id AS clienteAnam FROM anamnese AS anam, cliente WHERE cliente.id = anam.cliente_id"; $resultado = mysql_query($sql); $linha = mysql_fetch_array($resultado); $clienteAnam = $linha[clienteAnam]; echo "$clienteAnam"; Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 28, 2009 $result é um tipo resource. você tem que recuperar os valores num loop usando mysql_fetch_assoc() mas seria mais fácil executar a consulta em linha de comando ou num front-end Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Novembro 28, 2009 $result é um tipo resource. você tem que recuperar os valores num loop usando mysql_fetch_assoc() mas seria mais fácil executar a consulta em linha de comando ou num front-end E como que ficaria usando o mysql_fetch_assoc() ou essas outras duas formas que você citou ?! Se tiver como dá um toque ficaria muito agradecido. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 28, 2009 http://br.php.net/mysql_fetch_assoc por linha de comando é só entrar no mysql e executar o SELECT pr front-end, depende do qual estiver usando. pode ser PHPMyAdmin mesmo Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Novembro 28, 2009 RESOLVIDO O codigo final ficou assim: <?php include "./conexao.php"; $codigo = $_GET["codigo"]; $id = $_GET["id"]; $sql = "SELECT anam.id FROM anamnese AS anam JOIN cliente AS cli ON anam.cliente_id = cli.id WHERE cli.id = '$codigo'"; $resultado = mysql_query($sql); $linha = mysql_fetch_array($resultado); $clienteAnam = $linha[id]; $sql = "SELECT cc.id FROM compcorporal AS cc JOIN cliente AS cli ON cc.cliente_id = cli.id WHERE cli.id = '$codigo'"; $resultado = mysql_query($sql); $linha = mysql_fetch_array($resultado); $clientecc = $linha[id]; $sql = "SELECT rb.id FROM res_bra AS rb JOIN cliente AS cli ON rb.cliente_id = cli.id WHERE cli.id = '$codigo'"; $resultado = mysql_query($sql); $linha = mysql_fetch_array($resultado); $clienteBra = $linha[id]; $sql = "SELECT ra.id FROM res_abd AS ra JOIN cliente AS cli ON ra.cliente_id = cli.id WHERE cli.id = '$codigo'"; $resultado = mysql_query($sql); $linha = mysql_fetch_array($resultado); $clienteAbd = $linha[id]; $sql = "SELECT v.id FROM vo2 AS v JOIN cliente AS cli ON v.cliente_id = cli.id WHERE cli.id = '$codigo'"; $resultado = mysql_query($sql); $linha = mysql_fetch_array($resultado); $clienteVo2 = $linha[id]; ?> <div class="titulo_content"> <h1>Ver Exames</h1> </div> <br /> <div class="lista_links"> <div><a href="index.php?link=46&codigo=<?php echo $clienteAnam?>"> <h3>Anamnese</h3></a></div> <div><a href="index.php?link=47&codigo=<?php echo $clienteVo2?>"> <h3>VO2 Máximo</h3></a></div> <div><a href="#"> <h3>Flexibilidade</h3></a> </div> <div><a href="index.php?link=49&codigo=<?php echo $clientecc?>"> <h3>Composição Corporal</h3></a></div> <div><a href="index.php?link=50&codigo=<?php echo $clienteAbd?>"> <h3>Resistência Abdominal</h3></a></div> <div><a href="index.php?link=51&codigo=<?php echo $clienteBra?>"> <h3>Resistência dos Braços</h3></a></div> <div><a href="#"> <h3>Teste de Carga Máxima</h3></a></div> <div><a href="#"> <h3>Teste de Repetição Máxima </h3></a></div> </div> Compartilhar este post Link para o post Compartilhar em outros sites