Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, galera.
Bom, o meu problema é o seguinte: eu estou criando um script de portal de noticias, e então estou tendo problemas com meu script de buscas de noticias do site. O script faz as buscas mas não mostra os resultados, eu queria que vocês por favor me mostrem o problema e a possível solução.Abaixo estão os códigos.
Código da página onde as noticias são mostradas, noticias.php:
<title>Noticias</title>
<div style="text-align:center; position:relative; float:right;">
<form method="GET" action="busca.php">
<label for="consulta">Buscar:</label>
<input type="text" name="busca" maxlength="255" />
<input name="ok" type="submit" value="OK" />
</form>
</div>
<?php
// Conexão com o Banco de Dados
include('views/config.php');
$selecionar_db = "SELECT * FROM news ORDER BY id DESC";
$final = mysql_query($selecionar_db)
or die ("<h1>Erro ao Conectar-se ao Banco de dados</h1>");
while ($news=mysql_fetch_array($final)) {
$id = $news["id"];
$titulo = $news["titulo"];
$categoria_id = $news["categoria"];
$autor = $news["autor"];
$views = $news["views"];
$texto = $news["texto"];
$date = $news["date"];
$date2 = strtotime($date);
$data = date('d/m/Y', $date2);
$hora = date('H:i', $date2);
$comentarios_db = "SELECT * FROM comentarios WHERE noticia_id='$id'";
$comentarios_db = mysql_query($comentarios_db);
$comentarios = mysql_num_rows($comentarios_db);
$categoria_db = "SELECT * FROM categorias WHERE id='$categoria_id'";
$categoria_resultado = mysql_query($categoria_db);
$categoria_final = mysql_fetch_assoc($categoria_resultado);
$categoria = $categoria_final['categoria'];
$texto = substr("$texto", 0, -400);
echo "<h1><a href=\"noticia.php?id=$id\">$titulo</a></h1><p>Postado por <b>$autor</b> em <b>$data</b> ás <b>$hora</b> - <b>$views</b> Visualizações | <b>$comentarios</b> Comentários | Categoria: <b>$categoria</b></p><p>$texto <a href=\"noticia.php?id=$id\">Leia Mais...</a></p>";
}
?>
Script da página de busca, a qual está com problema, busca.php
<title>Noticias</title>
<div style="text-align:center; position:relative; float:right;">
<form method="GET" action="busca.php">
<label for="consulta">Buscar:</label>
<input type="text" name="busca" maxlength="255" />
<input name="ok" type="submit" value="OK" />
</form>
</div>
<?php
// Conexão com o Banco de Dados
include('views/config.php');
$termo = $_GET['busca'];
$busca = mysql_query ('SELECT * FROM news WHERE tags LIKE "%termo%" ORDER BY id DESC');
while($src = mysql_fetch_array($busca))
echo "Nada encontrado";
{
?>
<h2><a href=\"noticia.php?id=<?php echo $src['id'];?>\"><?php echo $src['titulo'];?></a></h2><p><?php echo $src['texto'];?></p>
<?php } ?>Cara, ainda continua dando erros. Você poderia corrigir no código e me mostrar onde está errado? Ficarei muito grato!
Criei um sistema e gravei.
Qualquer coisa ver ai.
>
Você quer que eu refaça para você com AJAX e JS (para buscar em tempo real)?
Ah! Sim.
Achei um errinho...
while($src = mysql_fetch_array($busca))
echo "Nada encontrado.";
{
?>
<h2><a href=\"noticia.php?id=<?php echo $src['id'];?>\"><?php echo $src['titulo'];?></a></h2><p><?php echo $src['texto'];?></p>
<?php } ?>
Deveria estar assim:
$check_rows_ex = mysql_num_rows($final);
while($src = mysql_fetch_array($busca)) {
if ($check_rows_ex < 1) {
echo "Nada encontrado.";
} else {
?>
<h2><a href=\"noticia.php?id=<?php echo $src['id'];?>\"><?php echo $src['titulo'];?></a></h2><p><?php echo $src['texto'];?></p>
<?php } ?>
Cara , do seu jeito está indo, mas me mostra esse erro:
Parse error: syntax error, unexpected end of file in... on line 16
Que está entre essas duas:
<h2><a href=\"noticia.php?id=<?php echo $src['id'];?>\"><?php echo $src['titulo'];?></a></h2><p><?php echo $src['texto'];?></p>
<?php } ?>
Então, o que pode ser feito?
O correto seria verificar primeiro, depois botar o while e também está faltando um }
$check_rows_ex = mysql_num_rows($final);
if ($check_rows_ex < 1) {
echo "Nada encontrado.";
} else {
while($src = mysql_fetch_array($busca)) {
?>
<h2><a href=\"noticia.php?id=<?php echo $src['id'];?>\"><?php echo $src['titulo'];?></a></h2><p><?php echo $src['texto'];?></p>
<?php
}
} ?>Não quero ser chato, mas você conhece scripts como Wordpress ou outros CMS? Dê uma pesquisa, talvez você veja que valha mais a pena usa-los do que criar um portal do 0.
LIKE "%termo%"
Não seria
LIKE "%$termo%"
Além disto utilize mysql_num_rows para contar os resultados e ai exibir ou não a mensagem de "nada encontrado".