Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Xagrik_

[Resolvido] Sistema de Pesquisa

Recommended Posts

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.