Ir para conteúdo

POWERED BY:

Arquivado

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

Naty_Za

Exibir palavras relacionadas

Recommended Posts

desse 1º jeito:

 

<?php

$id_receita = $_GET["id_receita"];

$consulta = mysql_query("SELECT * FROM receitas WHERE id_receita = '$id_receita' ORDER BY id_receita ASC") or die (mysql_error());
while($verifica = mysql_fetch_array($consulta)){ 

$id_receita = $verifica["id_receita"];
$titulo = $verifica["titulo"];

// Uma quebra desse titulo
$partes = explode(' ', $titulo);
$filtra_palavras = 'de|com|a|o|do|da|ao'; //aqui vão as palavras que não lhe interessam nos títulos, separados por |
$partes_filtradas = array();

foreach($partes as $filtrar)
{
	if(!preg_match(/"$filtra_palavras/", $filtrar))
	{
		array_push($partes_filtradas, $filtrar);
	}
}

if(count($partes_filtradas) != 0)
{
  //é interessante ver se não vai dar problemas antes de fazer as queries
  $query = "SELECT * FROM receitas WHERE titulo LIKE '%$partes_filtradas[0]%'";
  for($x = 1; $x < count($partes_filtradas); $x++)
  {
	//faço um for normal para poder começar desde o segundo elemento da array e poder adicionar OR direto na query
	$query .= " OR titulo LIKE '%$partes_filtradas[$x]%'";
  }
  $relacionadas = mysql_query($query);
  
  while(($relacionadas = mysql_fetch_array($relacionadas)) !== NULL)
  {

echo "$relacionadas"; 
}
?>

dá um erro assim:

Parse error: syntax error, unexpected '/', expecting ')' in /home/.../banners_receita.php on line 49

 

e a linha 49 é: if(!preg_match(/"$filtra_palavras/", $filtrar))

 

e do outro jeito, eu trocaria oq??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem alguns erros bem estranhos nesse script ai... 2 chaves não fechadas...

e uma utilização meio complicada de algumas funções....

 

eu cadastrei algumas coisas aqui, e parece que ocorreu tudo certo:

$id_receita = $_GET["id_receita"];

$consulta = mysql_query("SELECT * FROM receitas WHERE id_receita = '$id_receita' ORDER BY id_receita ASC") or die (mysql_error());
	while($verifica = mysql_fetch_array($consulta))
	{ 
		$id_receita = $verifica["id_receita"];
		$titulo = $verifica["titulo"];

		// Uma quebra desse titulo
		$partes = explode(' ', $titulo);
		$qntos = count($partes); /* contador para o último laço */

		$filtra_palavras = array('de','com','a','o','da','do'); 

		$count = count($filtra_palavras);

		for($i = 0; $i < $count; $i++) {
			if(in_array($filtra_palavras[$i], $partes))
			{
				$j = array_search($filtra_palavras[$i], $partes);
				unset($partes[$j]);
			}
		}

		$c = count($partes);
		if($c != 0)
		{
			$query = "SELECT * FROM `receitas` WHERE `titulo` LIKE '%$partes[0]%' ";
				for($i=0; $i < $qntos; $i++){
					if($partes[$i] != '')
					$query .= " OR `titulo` LIKE '%$partes[$i]%'";
					}
					
			$sql = mysql_query($query); 
			
			while($relacionadas = mysql_fetch_assoc($sql))
			{
				echo $relacionadas['titulo'].'<br />'; 
			}
		}
	}

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.