Xagrik_ 0 Denunciar post Postado Maio 11, 2011 Boa tarde, estou a tentar criar um sistema de pesquisa com o seguinte código que retirei de um tutorial: tenho um ficheiro pesq.php: if(isset($_POST['palavra'])) { $palavra = mysql_real_escape_string($_POST['palavra']); /* Altera os espaços adicionando no lugar o simbolo % */ $qr = "SELECT * FROM cliente WHERE nome_cliente LIKE '%".$palavra."%' || apelido_cliente LIKE '%".$palavra."%' ORDER BY id_cliente DESC"; // Executa a query no Banco de Dados $sql = mysql_query($qr); // Conta o total ded resultados encontrados $total = mysql_num_rows($sql); echo "Sua busca retornou '$total' resultados."; // Gera o Loop com os resultados while($r = mysql_fetch_array($sql)) { echo "<hr>"; echo "<a href='vcliente.php?id_cliente=$id_cliente'>";echo $r["nome_cliente"];"</a>"; } } o que acontece é que eu quero que ao listar os dados seja criado um link para ver a ficha do cliente, e estou a tentar com o link "echo "<a href='vcliente.php?id_cliente=$id_cliente'>";echo $r["nome_cliente"];"</a>";" Ele cria o link, mas quando clico nele o endereço não vai buscar o id_cliente, ficando o url do browser "vcliente.php?id_cliente=" O ficheiro vcliente.php <?php $id_cliente= $_GET['id_cliente']; $sql = "SELECT * FROM cliente WHERE id_cliente = '$id_cliente'"; $result = mysql_query($sql); $row = mysql_fetch_assoc($result); $nome_cliente = $row['nome_cliente ']; $apelido_cliente = $row['apelido_cliente']; ?> <?php include ("header.php"); $id_cliente= $_GET['id_cliente']; ?> <table width="470" border="0"> <tr> <td>Nome</td> <td><?php echo $nome_cliente; ?></td> </tr> <tr> <td>Apelido</td> <td><?php echo $apelido_cliente; ?></td> </tr> <tr> <td colspan="2" style="text-align:center;"><a href="#" onClick="window.print();">Imprimir</a></td> </tr> </table> <?php $conexao = mysql_connect("localhost", "root", "") or die ("Erro na ligação à banco de dados."); $db = mysql_select_db("anenacla") or die ("Erro ao selecionar a base de dados."); if(isset($_POST['palavra'])) { $palavra = mysql_real_escape_string($_POST['palavra']); /* Altera os espaços adicionando no lugar o simbolo % */ $qr = "SELECT * FROM cliente WHERE nome_cliente LIKE '%".$palavra."%' || apelido_cliente LIKE '%".$palavra."%' ORDER BY id_cliente DESC"; // Executa a query no Banco de Dados $sql = mysql_query($qr); // Conta o total ded resultados encontrados $total = mysql_num_rows($sql); echo "Sua busca retornou '$total' resultados."; // Gera o Loop com os resultados while($r = mysql_fetch_array($sql)) { echo "<hr>";?> <a href="vcliente.php?="<?php echo $id_id_cliente; ?>"><?php echo $r["nome_cliente"];?></a> } } ?> Podem-me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
Gui0 2 Denunciar post Postado Maio 11, 2011 Pode fazer assim: echo "<a href='vcliente.php?id_cliente=$id_cliente'>";echo $r["nome_cliente"];"</a>"; Muda para : echo "<a href='./vcliente.php?id_cliente=".$id_cliente."'>";echo $r["nome_cliente"];"</a>"; Vi outra coisa errada na página vcliente.php: $row = mysql_fetch_assoc($result); $nome_cliente = $row['nome_cliente ']; $apelido_cliente = $row['apelido_cliente']; ?> Muda para : $row = mysql_fetch_assoc($result){ $nome_cliente = $row['nome_cliente ']; $apelido_cliente = $row['apelido_cliente'];} ?> Se funcionar avisa aqui (: Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Maio 11, 2011 Até onde eu saiba Não existe || em Query SQL Troque $qr = "SELECT * FROM cliente WHERE nome_cliente LIKE '%".$palavra."%' || apelido_cliente LIKE '%".$palavra."%' ORDER BY id_cliente DESC"; Por $qr = "SELECT * FROM cliente WHERE nome_cliente LIKE '%".$palavra."%' OR apelido_cliente LIKE '%".$palavra."%' ORDER BY id_cliente DESC"; Compartilhar este post Link para o post Compartilhar em outros sites
Gui0 2 Denunciar post Postado Maio 11, 2011 Até onde eu saiba Não existe || em Query SQL Troque $qr = "SELECT * FROM cliente WHERE nome_cliente LIKE '%".$palavra."%' || apelido_cliente LIKE '%".$palavra."%' ORDER BY id_cliente DESC"; Por $qr = "SELECT * FROM cliente WHERE nome_cliente LIKE '%".$palavra."%' OR apelido_cliente LIKE '%".$palavra."%' ORDER BY id_cliente DESC"; Já vi funcionando assim (: Depende do servidor que está emulando a PHP Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Maio 11, 2011 Então boa sorte aí :joia: , minha dica tá dada Compartilhar este post Link para o post Compartilhar em outros sites
Xagrik_ 0 Denunciar post Postado Maio 11, 2011 Obrigado pelas vossas rapidas respostas, mas infelizmente não consegui resolver o problema. O código continua a não receber a variavel id_cliente na pagina vcliente.php. Alguem tem alguma ideia do que possa ser? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Gui0 2 Denunciar post Postado Maio 11, 2011 Ele pelo menos lista os usuarios da pesquisa? Tipoo, ele parece o nome dos usuarios listados porém não imprimi apenas o id do usuario no link? Cara tenta muda isso: // Gera o Loop com os resultados while($r = mysql_fetch_array($sql)) { echo "<hr>"; echo "<a href='vcliente.php?id_cliente=$id_cliente'>";echo $r["nome_cliente"];"</a>"; } } Para isso: // Gera o Loop com os resultados while($r = mysql_fetch_array($sql)) { echo "<hr>"; echo "<a href='vcliente.php?id_cliente=".$r['id_cliente']."'>";echo $r["nome_cliente"];"</a>"; } } Posta aqui depois (: abç Compartilhar este post Link para o post Compartilhar em outros sites
Xagrik_ 0 Denunciar post Postado Maio 11, 2011 Funcionou Gui0. Muito obrigado! Compartilhar este post Link para o post Compartilhar em outros sites