Naty_Za 0 Denunciar post Postado Janeiro 20, 2009 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
Renato Siroma 2 Denunciar post Postado Janeiro 20, 2009 if(!preg_match(\"$filtra_palavras\", $filtrar)) Inverta as barras Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Janeiro 20, 2009 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