KLeber_Cwb Postado Fevereiro 9, 2007 Denunciar Share Postado Fevereiro 9, 2007 Olá galera, sou novo por aqui e também no PHP + Mysql..Tentei ao máximo evitar de postar a dúvida mas não teve jeito...Supondo que eu tenha a seguinte tabela de imoveis proveniente de uma busca com um campo select:____________________________________________________________|Ref. | Finalidade | Bairro | Endereço | Área | Valor || ||1 |Locação | Portao |Rua Itatiaia,1305 | 191 m2 |R$ 600,00 ||2 |Locação | Bairro Novo |Rua Piquiri, 1420 | 128 m2 |R$ 800,00 ||3 |Venda | Agua Verde |Rua Qualquer,10 | 210 m2 | R$ 750,00||____________________________________________________________| Necessito que ao clicar na Referencia, 1, 2, 3, e assim por diante, o link chame a página mostrar_imoveis.php com o imóvel referente ao ID clicado..O link até chama o ID, mas acredito não estar me dando bem com o SELECT do MYSQL..não sei se fui bem claro...Abaixo, o código da página mostrar_imoveis.php que estou tentando implantar:<?php include ('conexoes/config.php'); $referencia_imovel = $_POST['referencia_imovel']; $sql = mysql_query("SELECT * FROM imoveis WHERE referencia_imovel ='referencia_imovel'") or die(mysql_error()); $result = mysql_db_query('imoveis', $sql); $row = mysql_fetch_array($sql);?>Resumindo, não sei o que estou fazendo de errado...preciso de um help..Obrigado.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 9, 2007 Denunciar Share Postado Fevereiro 9, 2007 2 Coisas:A primeira, se você está usando links, você terá que resgastar usando GET e não POST:$referencia_imovel = $_POST['referencia_imovel'];passa para:$referencia_imovel = $_GET['referencia_imovel'];Segunda coisa, na query... você tem que colocar o $ na frente do referencial_imovel...:$sql = mysql_query("SELECT * FROM imoveis WHERE referencia_imovel ='referencia_imovel'") or die(mysql_error());passa para:$sql = mysql_query("SELECT * FROM imoveis WHERE referencia_imovel ='$referencia_imovel'") or die(mysql_error()); Outra coisa, que não é um erro.. mas não precisa:$result = mysql_db_query('imoveis', $sql);$row = mysql_fetch_array($sql);Você pode usar o mysql_result para pegar o resultado do $sql... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 KLeber_Cwb Postado Fevereiro 9, 2007 Autor Denunciar Share Postado Fevereiro 9, 2007 2 Coisas:A primeira, se você está usando links, você terá que resgastar usando GET e não POST:$referencia_imovel = $_POST['referencia_imovel'];passa para:$referencia_imovel = $_GET['referencia_imovel'];Segunda coisa, na query... você tem que colocar o $ na frente do referencial_imovel...:$sql = mysql_query("SELECT * FROM imoveis WHERE referencia_imovel ='referencia_imovel'") or die(mysql_error());passa para:$sql = mysql_query("SELECT * FROM imoveis WHERE referencia_imovel ='$referencia_imovel'") or die(mysql_error()); Outra coisa, que não é um erro.. mas não precisa:$result = mysql_db_query('imoveis', $sql);$row = mysql_fetch_array($sql);Você pode usar o mysql_result para pegar o resultado do $sql...Alterei da forma que você mencionou, mas mesmo assim o resultado não aparece...Se eu retirar a parte --WHERE referencia_imovel ='$referencia_imovel'-- se eu clicar em qualquer link da referencia do imovel ele mostra corretamente mas somente o primeiro resultado da tabela. Então acredito que o erro esteja nesta parte, algo no WHERE que eu esteja fazendo errado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 9, 2007 Denunciar Share Postado Fevereiro 9, 2007 Alterei da forma que você mencionou, mas mesmo assim o resultado não aparece...Se eu retirar a parte --WHERE referencia_imovel ='$referencia_imovel'-- se eu clicar em qualquer link da referencia do imovel ele mostra corretamente mas somente o primeiro resultado da tabela. Então acredito que o erro esteja nesta parte, algo no WHERE que eu esteja fazendo errado.Se você tirar o WHERE ele sempre vai buscar a primeira linha pois é o que você está declarando... a sintaxe do WHERE está correta, a única coisa que pode estar dando problema é o nome da coluna estar errado (referencia_imovel) ou o link apontar para uma referência que não existe....Também de um echo no $referencia_imovel para ver se ele está vindo correto. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 KLeber_Cwb Postado Fevereiro 14, 2007 Autor Denunciar Share Postado Fevereiro 14, 2007 Pior que eu, com meu limitado conhecimento não vi nada de errado. Abaixo, posto o codigo completo da pagina..As tabelas estão certas, seus nomes também. Dei um echo no $referencia_imovel e retornou o valor corretamente.O problema é que mostra a pagina que preciso "mostra_imovel.php" mas não preenche os campos corretamente com o ID selecionado..Se alguém puder dar uma verificada, fico no aguardo...Valeu galera...<HTML><HEAD><link rel="stylesheet" type="text/css" href="css/estilos.css"></head><body class="meio"><? include ("conexoes/config.php");$consulta_rapida = $_POST['consulta_rapida'];$sql = mysql_query("SELECT * FROM imoveis WHERE tipo LIKE '%$consulta_rapida%' ORDER BY 'finalidade'") or die(mysql_error());$row = mysql_num_rows($sql);$result = mysql_db_query('imoveis', $sql);echo "<h5><b>Foram encontrados <font color=\"#ff0000\">\"<b>$row</b>\"</font> imóveis para sua busca: <font color=\"#ff0000\">\"<b>$consulta_rapida</b>\"</font><br></h5>\n";if(mysql_num_rows($sql)) {echo "<br><TABLE align=\"right\" border=\"1\" bordercolor=\"#000000\" text=\"#ffffff\" cellpadding=\"0\" cellspacing=\"0\">\n";echo "<tr bgcolor=\"#CC6600\">\n";echo "<td width=\"40\"><p><font color=\"#ffffff\"><strong>Ref.</strong></font></p></td>\n";echo "<td width=\"70\"><p><font color=\"#ffffff\"><strong>Finalidade</strong></font></p></td>\n";echo "<td width=\"70\"><p><font color=\"#ffffff\"><strong>Bairro</strong></font></p></td>\n";echo "<td width=\"70\"><p><font color=\"#ffffff\"><strong>Endereço</strong></font></p></td>\n";echo "<td width=\"45\"><p><font color=\"#ffffff\"><strong>Área</strong></font></p></td>\n";echo "<td width=\"70\"><p><font color=\"#ffffff\"><strong>Valor</strong></font></p></td>\n";echo "</tr>\n";while ($reg = mysql_fetch_array($sql)) { $id = $reg['referencia_imovel']; $query = mysql_query ("SELECT * FROM imoveis WHERE '$id'") or die (mysql_error()); $resultado = mysql_query($query); echo "<tr bgcolor=\"#FFFFFF\">\n"; echo "<td><p align=\"center\"><a href=mostra_imovel.php?id=$id' target='_blank'> {$reg['referencia_imovel]}</a></p></td>\n"; echo "<td><p>{$reg['finalidade']}</p></td>\n"; echo "<td><p>{$reg['bairro']}</p></td>\n"; echo "<td><p>{$reg['endereco']},{$reg['numero']}</p></td>\n"; echo "<td><p>{$reg['areatotal']} m2</p></td>\n"; echo "<td><p>R$ {$reg['valor']}</p></td>\n"; echo "</tr>\n"; }echo "</table>\n"; } else echo "<br><font color=\"#ff0000\">Nenhum registro encontrado para esta pesquisa.";?></body></html> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 14, 2007 Denunciar Share Postado Fevereiro 14, 2007 A linha:$query = mysql_query ("SELECT * FROM imoveis WHERE '$id'") or die (mysql_error());Está errada!, falta a coluna que se refere o argumento... no caso estou assumindo que o campo que guarda as informações do id se chama id...$query = mysql_query ("SELECT * FROM imoveis WHERE id = '$id'") or die (mysql_error()); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 KLeber_Cwb Postado Fevereiro 14, 2007 Autor Denunciar Share Postado Fevereiro 14, 2007 Verdade, estava errada sim.. É que eu havia feito várias alterações pra testar e ver se funcionava...e esqueci de voltar o argumento..Será que o problema pode estar na página que mostro os resultados ?!Fora o FORM que é muito grande está desta forma:<?php include ('conexoes/config.php'); $selecao = $_GET['referencia_imovel']; $sql = mysql_query("SELECT * FROM imoveis WHERE referencia_imovel='$selecao'") or die(mysql_error()); $result = mysql_db_query('imoveis', $sql); $row = mysql_fetch_array($sql);?><?if(!isset ($referencia_imovel,$row))?>E ai vou dando um echo onde preciso dentro do formulario... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 14, 2007 Denunciar Share Postado Fevereiro 14, 2007 Uma pequena dúvida: QUAL o problema afinal? Ainda é o do post inicial?Outra coisa, qual o objetivo do:$result = mysql_db_query('imoveis', $sql);Não vejo ele ser usado para nada... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 KLeber_Cwb Postado Fevereiro 14, 2007 Autor Denunciar Share Postado Fevereiro 14, 2007 Boa tarde ESerra, A dúvida ainda é a do Post inicial sim..pois a pagina até chama o link, mas não mostra os resultados no formulario..que é o que comentei no ultimo post.Quanto ao $result = mysql_db_query('imoveis', $sql);, eu peguei de um outro exemplo para criar a tabela, e como fiz vários testes pra ver a funcionalidade deixei la mesmo ..Sou novaço em PHP e como tal não mexi porque a principio estava tudo caminhando pra onde e como eu queria...Criei o form, as tabelas, o link para os ID´s e travei nesta parte de selecionar na tabela o link escolhido.Agora, retirei a linha desta variável que realmente não tem utilidade...rsObrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 14, 2007 Denunciar Share Postado Fevereiro 14, 2007 o $_GET['referencia_imovel']; está aparecendo na url? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 KLeber_Cwb Postado Fevereiro 14, 2007 Autor Denunciar Share Postado Fevereiro 14, 2007 Ahhhhhh muleeekkk..rssssDESCOBRI O PROBLEMA...Era na página que eu mostrava os imoveis...."mostra_imovel.php"..Antes estava declarado desta forma: $selecao = $_GET['referencia_imovel']; $sql = mysql_query("SELECT * FROM imoveis WHERE referencia_imovel=$selecao'") or die(mysql_error()); $row = mysql_fetch_array($sql);?><?if(!isset ($referencia_imovel,$row))?>E agora mudei para esta: $selecao = $_GET['id]; $sql = mysql_query("SELECT * FROM imoveis WHERE id='$selecao'") or die(mysql_error()); $row = mysql_fetch_array($sql);<?if(!isset ($id,$row))Mudei a selecao...que antes estava apontando para a referencia do imóvel..e não para o ID...Obrigado ESerra pelos toques sobre os erros desde o começo do script..E aguarde, muitas dúvidas ainda surgirão...e se o Deus google não resolver recorrerei ao fórum...E no que eu puder ajudar com meu (ainda que) limitado conhecimento estarei acompanhando os tópicos..Obrigado mais uma vez... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
KLeber_Cwb
Olá galera, sou novo por aqui e também no PHP + Mysql..
Tentei ao máximo evitar de postar a dúvida mas não teve jeito...
Supondo que eu tenha a seguinte tabela de imoveis proveniente de uma busca com um campo select:
____________________________________________________________
|Ref. | Finalidade | Bairro | Endereço | Área | Valor |
| |
|1 |Locação | Portao |Rua Itatiaia,1305 | 191 m2 |R$ 600,00 |
|2 |Locação | Bairro Novo |Rua Piquiri, 1420 | 128 m2 |R$ 800,00 |
|3 |Venda | Agua Verde |Rua Qualquer,10 | 210 m2 | R$ 750,00|
|____________________________________________________________|
Necessito que ao clicar na Referencia, 1, 2, 3, e assim por diante, o link chame a página mostrar_imoveis.php com o imóvel referente ao ID clicado..
O link até chama o ID, mas acredito não estar me dando bem com o SELECT do MYSQL..
não sei se fui bem claro...
Abaixo, o código da página mostrar_imoveis.php que estou tentando implantar:
<?php
include ('conexoes/config.php');
$referencia_imovel = $_POST['referencia_imovel'];
$sql = mysql_query("SELECT * FROM imoveis WHERE referencia_imovel ='referencia_imovel'") or die(mysql_error());
$result = mysql_db_query('imoveis', $sql);
$row = mysql_fetch_array($sql);
?>
Resumindo, não sei o que estou fazendo de errado...preciso de um help..
Obrigado..
Link para o comentário
Compartilhar em outros sites
10 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.