Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ai galera, tenho o seguinte código:
<FORM method="post">
Palavra: <INPUT name="palavra">
<INPUT type="submit" value="Buscar">
</FORM>
<?php
include "config.php";
if(!empty($HTTP_POST_VARS["palavra"])) {
$palavra = str_replace(" ", "%", $HTTP_POST_VARS[palavra]);
/* Altera os espaços adicionando no lugar o simbolo % */
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%".$palavra."%' ORDER BY id 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 $r["titulo"];
}
}
?>
Esse achei na internet, só que to com um problema, ele não retorna os resultados por completo.
Veja todos os vídeos que tenho cadastrado no banco:
http://andrewcrg.0fees.net/exibir2.php
Agora se você for fazer a busca no sistema de busca, e colocar 1 palavra de cada vídeo na busca, você só consegue achar 1 resultado que é o próprio que eu coloquei com 1 palavra de cada video...
Alguém sabe me dizer como faço pra aparecer todos os vídeos se eu colocar 1 palavra do nome de cada vídeo ?
Abss!
>
muda isso
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%".$palavra."%' ORDER BY id DESC";
para isso
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%$palavra%' ORDER BY id DESC";
antes disso
dá um echo pra ve o que q $palavra tá recebendo
echo $palavra;
e veja se altera alguma coisa
Esqueci de enviar a página em funcionamento:
http://andrewcrg.0fees.net/busca-simples.php
O código faz uma substituição automaticamente dos espaços por % eu deixei o código do jeito que tu falou.. com o echo e tudo..
Veja ai testando online, vlw!
Qual o problema?
outra coisa troque
$HTTP_POST_VARS[]// obsoleto
por
$_POST[]
>
Qual o problema?
outra coisa troque
$HTTP_POST_VARS[]// obsoleto
por
$_POST[]
Já troquei e deu no mesmo.
O problema é que eu tenho 6 vídeos cadastrados no banco de dados (todos os vídeos AQUI) caso eu coloque 1 palavra do título de cada vídeo ele não retorna nenhum resultado.
Veja o exemplo e faça a busca para ver o resultado AQUI.
Neste caso você vai ter que dividir a string com a função explode() e tranforma-la em array para efetuar a busca
$palavra = explode(" ", strip_tags($POST['palavra']));
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' ORDER BY id DESC";
A busca esta com 03 campos titulo, caso queira mais é só ir acrescentando OR titulo LIKE '%". $palavra[3] ."%' e por aie vai.
Testa ae ve se é isto
>
Neste caso você vai ter que dividir a string com a função explode() e tranforma-la em array para efetuar a busca
$palavra = explode(" ", strip_tags($POST['palavra']));
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' ORDER BY id DESC";
A busca esta com 03 campos titulo, caso queira mais é só ir acrescentando OR titulo LIKE '%". $palavra[3] ."%' e por aie vai.
Testa ae ve se é isto
A função ta funcionando, agora num sei o que é mais ele retorna todos os vídeos cadastrados no banco, não importa a busca que fizer, quer ver testa lá.
Abraço!
>
Neste caso você vai ter que dividir a string com a função explode() e tranforma-la em array para efetuar a busca
$palavra = explode(" ", strip_tags($POST['palavra']));
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' ORDER BY id DESC";
A busca esta com 03 campos titulo, caso queira mais é só ir acrescentando OR titulo LIKE '%". $palavra[3] ."%' e por aie vai.
Testa ae ve se é isto
Opa cara, insisti no seu código e deu certo.
O problema é que na busca do mysql, tinha 3 palavras que as vezes a busca nem tinha 3 palavras, ai retornava todos os vídeos, mais eu fiz o código funcionar usando só os necessários, veja:
<FORM method="post">
Palavra: <INPUT name="palavra">
<INPUT type="submit" value="Buscar">
</FORM>
<?php
include "config.php";
if(!empty($_POST["palavra"])) {
//Separa as palavras
$palavra = explode(" ", strip_tags($_POST["palavra"]));
// Conta quantos espaços tem
$espaco = count($palavra);
// Altera os espaços adicionando no lugar o simbolo % */
if ($espaco == "1") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' ORDER BY id DESC";
}
if ($espaco == "2") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' ORDER BY id DESC";
}
if ($espaco == "3") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' ORDER BY id DESC";
}
if ($espaco == "4") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' OR titulo LIKE '%". $palavra[3] ."%' ORDER BY id DESC";
}
if ($espaco == "5") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' OR titulo LIKE '%". $palavra[3] ."%' OR titulo LIKE '%". $palavra[4] ."%' ORDER BY id DESC";
}
if ($espaco == "6") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' OR titulo LIKE '%". $palavra[3] ."%' OR titulo LIKE '%". $palavra[4] ."%' OR titulo LIKE '%". $palavra[5] ."%' ORDER BY id DESC";
}
if ($espaco == "7") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' OR titulo LIKE '%". $palavra[3] ."%' OR titulo LIKE '%". $palavra[4] ."%' OR titulo LIKE '%". $palavra[5] ."%' OR titulo LIKE '%". $palavra[6] ."%' ORDER BY id DESC";
}
if ($espaco == "8") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' OR titulo LIKE '%". $palavra[3] ."%' OR titulo LIKE '%". $palavra[4] ."%' OR titulo LIKE '%". $palavra[5] ."%' OR titulo LIKE '%". $palavra[6] ."%' OR titulo LIKE '%". $palavra[7] ."%' ORDER BY id DESC";
}
if ($espaco == "9") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' OR titulo LIKE '%". $palavra[3] ."%' OR titulo LIKE '%". $palavra[4] ."%' OR titulo LIKE '%". $palavra[5] ."%' OR titulo LIKE '%". $palavra[6] ."%' OR titulo LIKE '%". $palavra[7] ."%' OR titulo LIKE '%". $palavra[8] ."%' ORDER BY id DESC";
}
if ($espaco == "10") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' OR titulo LIKE '%". $palavra[3] ."%' OR titulo LIKE '%". $palavra[4] ."%' OR titulo LIKE '%". $palavra[5] ."%' OR titulo LIKE '%". $palavra[6] ."%' OR titulo LIKE '%". $palavra[7] ."%' OR titulo LIKE '%". $palavra[8] ."%' OR titulo LIKE '%". $palavra[9] ."%' ORDER BY id DESC";
}
if ($espaco == "11") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' OR titulo LIKE '%". $palavra[3] ."%' OR titulo LIKE '%". $palavra[4] ."%' OR titulo LIKE '%". $palavra[5] ."%' OR titulo LIKE '%". $palavra[6] ."%' OR titulo LIKE '%". $palavra[7] ."%' OR titulo LIKE '%". $palavra[8] ."%' OR titulo LIKE '%". $palavra[9] ."%' OR titulo LIKE '%". $palavra[10] ."%' ORDER BY id DESC";
}
if ($espaco == "12") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' OR titulo LIKE '%". $palavra[3] ."%' OR titulo LIKE '%". $palavra[4] ."%' OR titulo LIKE '%". $palavra[5] ."%' OR titulo LIKE '%". $palavra[6] ."%' OR titulo LIKE '%". $palavra[7] ."%' OR titulo LIKE '%". $palavra[8] ."%' OR titulo LIKE '%". $palavra[9] ."%' OR titulo LIKE '%". $palavra[10] ."%' OR titulo LIKE '%". $palavra[11] ."%' ORDER BY id DESC";
}
if ($espaco == "13") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' OR titulo LIKE '%". $palavra[3] ."%' OR titulo LIKE '%". $palavra[4] ."%' OR titulo LIKE '%". $palavra[5] ."%' OR titulo LIKE '%". $palavra[6] ."%' OR titulo LIKE '%". $palavra[7] ."%' OR titulo LIKE '%". $palavra[8] ."%' OR titulo LIKE '%". $palavra[9] ."%' OR titulo LIKE '%". $palavra[10] ."%' OR titulo LIKE '%". $palavra[11] ."%' OR titulo LIKE '%". $palavra[12] ."%' ORDER BY id DESC";
}
if ($espaco == "14") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' OR titulo LIKE '%". $palavra[3] ."%' OR titulo LIKE '%". $palavra[4] ."%' OR titulo LIKE '%". $palavra[5] ."%' OR titulo LIKE '%". $palavra[6] ."%' OR titulo LIKE '%". $palavra[7] ."%' OR titulo LIKE '%". $palavra[8] ."%' OR titulo LIKE '%". $palavra[9] ."%' OR titulo LIKE '%". $palavra[10] ."%' OR titulo LIKE '%". $palavra[11] ."%' OR titulo LIKE '%". $palavra[12] ."%' OR titulo LIKE '%". $palavra[13] ."%' ORDER BY id DESC";
}
if ($espaco == "15") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' OR titulo LIKE '%". $palavra[3] ."%' OR titulo LIKE '%". $palavra[4] ."%' OR titulo LIKE '%". $palavra[5] ."%' OR titulo LIKE '%". $palavra[6] ."%' OR titulo LIKE '%". $palavra[7] ."%' OR titulo LIKE '%". $palavra[8] ."%' OR titulo LIKE '%". $palavra[9] ."%' OR titulo LIKE '%". $palavra[10] ."%' OR titulo LIKE '%". $palavra[11] ."%' OR titulo LIKE '%". $palavra[12] ."%' OR titulo LIKE '%". $palavra[13] ."%' OR titulo LIKE '%". $palavra[14] ."%' ORDER BY id DESC";
}
if ($espaco == "16") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' OR titulo LIKE '%". $palavra[3] ."%' OR titulo LIKE '%". $palavra[4] ."%' OR titulo LIKE '%". $palavra[5] ."%' OR titulo LIKE '%". $palavra[6] ."%' OR titulo LIKE '%". $palavra[7] ."%' OR titulo LIKE '%". $palavra[8] ."%' OR titulo LIKE '%". $palavra[9] ."%' OR titulo LIKE '%". $palavra[10] ."%' OR titulo LIKE '%". $palavra[11] ."%' OR titulo LIKE '%". $palavra[12] ."%' OR titulo LIKE '%". $palavra[13] ."%' OR titulo LIKE '%". $palavra[14] ."%' OR titulo LIKE '%". $palavra[15] ."%' ORDER BY id DESC";
}
if ($espaco == "17") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' OR titulo LIKE '%". $palavra[3] ."%' OR titulo LIKE '%". $palavra[4] ."%' OR titulo LIKE '%". $palavra[5] ."%' OR titulo LIKE '%". $palavra[6] ."%' OR titulo LIKE '%". $palavra[7] ."%' OR titulo LIKE '%". $palavra[8] ."%' OR titulo LIKE '%". $palavra[9] ."%' OR titulo LIKE '%". $palavra[10] ."%' OR titulo LIKE '%". $palavra[11] ."%' OR titulo LIKE '%". $palavra[12] ."%' OR titulo LIKE '%". $palavra[13] ."%' OR titulo LIKE '%". $palavra[14] ."%' OR titulo LIKE '%". $palavra[15] ."%' OR titulo LIKE '%". $palavra[16] ."%' ORDER BY id DESC";
}
if ($espaco == "18") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' OR titulo LIKE '%". $palavra[3] ."%' OR titulo LIKE '%". $palavra[4] ."%' OR titulo LIKE '%". $palavra[5] ."%' OR titulo LIKE '%". $palavra[6] ."%' OR titulo LIKE '%". $palavra[7] ."%' OR titulo LIKE '%". $palavra[8] ."%' OR titulo LIKE '%". $palavra[9] ."%' OR titulo LIKE '%". $palavra[10] ."%' OR titulo LIKE '%". $palavra[11] ."%' OR titulo LIKE '%". $palavra[12] ."%' OR titulo LIKE '%". $palavra[13] ."%' OR titulo LIKE '%". $palavra[14] ."%' OR titulo LIKE '%". $palavra[15] ."%' OR titulo LIKE '%". $palavra[16] ."%' OR titulo LIKE '%". $palavra[17] ."%' ORDER BY id DESC";
}
if ($espaco == "19") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' OR titulo LIKE '%". $palavra[3] ."%' OR titulo LIKE '%". $palavra[4] ."%' OR titulo LIKE '%". $palavra[5] ."%' OR titulo LIKE '%". $palavra[6] ."%' OR titulo LIKE '%". $palavra[7] ."%' OR titulo LIKE '%". $palavra[8] ."%' OR titulo LIKE '%". $palavra[9] ."%' OR titulo LIKE '%". $palavra[10] ."%' OR titulo LIKE '%". $palavra[11] ."%' OR titulo LIKE '%". $palavra[12] ."%' OR titulo LIKE '%". $palavra[13] ."%' OR titulo LIKE '%". $palavra[14] ."%' OR titulo LIKE '%". $palavra[15] ."%' OR titulo LIKE '%". $palavra[16] ."%' OR titulo LIKE '%". $palavra[17] ."%' OR titulo LIKE '%". $palavra[18] ."%' ORDER BY id DESC";
}
if ($espaco == "20") {
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%". $palavra[0] ."%' OR titulo LIKE '%". $palavra[1] ."%' OR titulo LIKE '%". $palavra[2] ."%' OR titulo LIKE '%". $palavra[3] ."%' OR titulo LIKE '%". $palavra[4] ."%' OR titulo LIKE '%". $palavra[5] ."%' OR titulo LIKE '%". $palavra[6] ."%' OR titulo LIKE '%". $palavra[7] ."%' OR titulo LIKE '%". $palavra[8] ."%' OR titulo LIKE '%". $palavra[9] ."%' OR titulo LIKE '%". $palavra[10] ."%' OR titulo LIKE '%". $palavra[11] ."%' OR titulo LIKE '%". $palavra[12] ."%' OR titulo LIKE '%". $palavra[13] ."%' OR titulo LIKE '%". $palavra[14] ."%' OR titulo LIKE '%". $palavra[15] ."%' OR titulo LIKE '%". $palavra[16] ."%' OR titulo LIKE '%". $palavra[17] ."%' OR titulo LIKE '%". $palavra[18] ."%' OR titulo LIKE '%". $palavra[19] ."%' ORDER BY id 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 $r["titulo"];
}
}
?>
Parabens ae cara, não sabe o quanto me ajudou :)
Essa busca sua ficou muito doída kkkkkkkkkk
porém invés de você montar essa grande quantidade de selects, use o for e vai incrementando os campos de acordo com o resultado do count()
Exemplo:
$qr = "SELECT * FROM informacoes WHERE
for($i=0; $i < $espaco; $i++){
titulo LIKE '%". $palavra[$i] ."%' OR
}
ORDER BY id DESC";
$sql = mysql_query($qr);
Ta meio tosco mais é por ae...
Abraços
Fica o código um pouco melhor
<FORM method="post">
Palavra: <INPUT name="palavra">
<INPUT type="submit" value="Buscar">
</FORM>
<?php
include "config.php";
if(!empty($_POST["palavra"])) {
//Separa as palavras
$palavra = explode(" ", strip_tags($_POST["palavra"]));
// Conta quantos espaços tem
$espaco = count($palavra);
// Altera os espaços adicionando no lugar o simbolo % */
$qr = "SELECT * FROM informacoes WHERE ";
for($i=0; $i < $espaco; $i++){
if($i <=0){
$qr .= "titulo LIKE '%". $palavra[$i] ."%' ";
}
if($i> 0 ){
$qr .= " OR titulo LIKE '%". $palavra[$i] ."%'";
}
}
$qr .= " ORDER BY id 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 $r["titulo"];
}
}
?>
Ve se te ajuda!
Deu certinho, mais se tiver muitos espaços na busca, ele vai retornar todos os vídeos cadastrados, veja:
http://andrewcrg.0fees.net/busca.php
Uma dúvida também é que, se tenho um vídeo chamado "ABC do amor" se eu buscar por "a", "b" ou "c" ele me retorna o vídeo "ABC do amor" e assim em qualquer outro vídeo, bastando apenas ter a letra buscada, tem como fazer para que só retorne o vídeo cadastrado se eu buscar a palavra inteira "ABC", "do" ou "amor" porque assim é paia :)
Mais sua ajuda me foi de grande necessidade, tava pensando como diminuir isso mesmo, você foi mais rápido =)
Vlww!
neste caso coloque AND invés de OR, ae sua busca vai ficar no padrão correto
if($i> 0 ){
$qr .= " AND titulo LIKE '%". $palavra[$i] ."%'";
}>
neste caso coloque AND invés de OR, ae sua busca vai ficar no padrão correto
if($i> 0 ){
$qr .= " AND titulo LIKE '%". $palavra[$i] ."%'";
}
Continua a mesma coisa..
Mais valeu por estar me ajudando!
Você tem que entender sobre combinação de padrões
Para encontrar nomes começando com ‘b’:
mysql> SELECT * FROM pet WHERE name LIKE "b%";
+--------+--------+---------+------+------------+------------+
| name | owner | species | --- | birth | death |
+--------+--------+---------+------+------------+------------+
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+--------+---------+------+------------+------------+
Para encontrar nomes com o final 'fy':
mysql> SELECT * FROM pet WHERE name LIKE "%fy";
+--------+--------+---------+------+------------+-------+
| name | owner | species | --- | birth | death |
+--------+--------+---------+------+------------+-------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+--------+--------+---------+------+------------+-------+
Para encontrar nomes contendo um ‘w’:
mysql> SELECT * FROM pet WHERE name LIKE "%w%";
+----------+-------+---------+------+------------+------------+
| name | owner | species | --- | birth | death |
+----------+-------+---------+------+------------+------------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
+----------+-------+---------+------+------------+------------+
Para encontrar nomes contendo exatamente cinco caracteres, use cinco instâncias do caracter ‘_’:
mysql> SELECT * FROM pet WHERE name LIKE "_____";
+-------+--------+---------+------+------------+-------+
| name | owner | species | --- | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+
Agora cabe você usar sua imaginação tanto com OR tanto AND
e você não pode analisar uma consulta somente com meia duzia de regsitros, mas sim seu banco contendo milhares ou até milhoes e se usuario vai querer ver pesquisa inrelevante.
Abraços e bons estudos, não esqueça de dar uma olhada no manual do mysql http://dev.mysql.com/
muda isso
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%".$palavra."%' ORDER BY id DESC";
para isso
$qr = "SELECT * FROM informacoes WHERE titulo LIKE '%$palavra%' ORDER BY id DESC";
antes disso
dá um echo pra ve o que q $palavra tá recebendo
echo $palavra;
e veja se altera alguma coisa