Ir para conteúdo

POWERED BY:

Arquivado

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

Castelo Inf

Query was empty

Recommended Posts

Ola amigos,eu sou novato na area de programação em php e estou com o seguinte problema,

eu tenho um sistema de busca que faz a busca nesta tabela


CREATE TABLE IF NOT EXISTS `videos` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`categoria` int(11) NOT NULL,

`estado` varchar(100) COLLATE utf8_unicode_ci NOT NULL,

`cidade` varchar(100) COLLATE utf8_unicode_ci NOT NULL,

`titulo` varchar(200) COLLATE utf8_unicode_ci NOT NULL,

`thumb` varchar(70) COLLATE utf8_unicode_ci NOT NULL,

`descricao` text COLLATE utf8_unicode_ci NOT NULL,

`embed` varchar(30) COLLATE utf8_unicode_ci NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8


mais sempre que executo o meu codigo busca.php me gera a seguinte mensagem (Query was empty)

segue abaixo o meu codigo busca.php.




<?php include_once"config.php"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Documento sem título</title>

<body>

<?php

// vamos pegar o valor campo do formulário chamado 'q', se houver sido preenchido

// caso contrário, o script voltará à página anterior

$busca = !is_null($_GET['q']) ? $_GET['q'] : die('<script> history.go(-1); </script>');

// agora, vamos nos proteger de SQLi

$busca = mysql_real_escape_string($busca);

// e também de XSS Reflected

$busca = htmlspecialchars($busca);

// e pegar a página

$page = is_numeric($_GET['p']) ? $_GET['p']-1 : 0;


// quantos resultados por página nós exibiremos?

$qnt = 10;

// tudo ok?

// vamos rodar nossa query, usando as variáveis $busca e $page anteriormente declaradas

$query = mysql_query("SELECT * FROM videos WHERE 'titulo','estado','cidade','descricao,'thumb' LIKE '%$busca%' OR conteudo LIKE '%$busca%' LIMIT $page,$qnt");

mysql_query($query)or die( mysql_error() );

$quantidade = mysql_num_rows($query);

if($quantidade==0) { // se a quantidade for 0

$content = 'Não foram encontrados resultados!';

} else { // caso contrário,

$content = 'Resultados:<br>';

while($row = mysql_fetch_array($query)) { // aqui iniciamos o loop

$content .= '<a href="ler_noticia.php?id='.$row['id'].'">'.$row['titulo'].'</a><br>'."\n"; // mostramos o link para a notícia

}

$p = is_numeric($_GET["p"]) ? $_GET['p'] : null;

// caso a variável não esteja declarada, daremos a ela o valor "1"

if(isset($p)) { $p = $p; } else { $p = 1; }

// Vamos calcular o início da seleção da seguinte maneira:

// (página atual X quantidade por página) - quantidade por página

$inicio = ($p*$qnt) - $qnt;

// Faz uma nova seleção no banco de dados, desta vez sem LIMIT,

// para pegarmos o núєmero total de resultados

$sql_query_all = mysql_query("SELECT * FROM videos WHERE 'titulo','estado','cidade','descricao,'thumb' LIKE '%$busca%' OR conteudo LIKE '%$busca%'");

// Gera uma variável com o núєmero total de resultados

$total_registros = mysql_num_rows($sql_query_all);

// Gera outra variável, desta vez com o núєmero de páginas que temos.

// O comando ceil() arredonda 'para cima' o valor

$pags = ceil($total_registros/$qnt);

// Número máximos de links de paginação

$max_links = 3;

// Exibe o primeiro link 'primeira pá', que não entra na contagem acima

$content .= "<a href='busca.php?&q=".urlencode($busca)."&p=1'><</a> ";

// Cria um loop para exibir os 3 links antes da página atual

for($i = $p-$max_links; $i <= $p-1; $i++) {

// Se o número da página for menor ou igual a zero, não as exibiremos

// (meio complicado ter a pagina zero ou páginas negativas)

if(!($i <=0)) {

$content .= "<a href='busca.php?q=".urlencode($busca)."p=$i'>".$i."</a> ";

}

}

// Exibe a página atual, sem link, e em negrito (para marcar)

$content .= '<b>'.$p.'</b> ';

// Cria outro loop, desta vez para exibir 3 links após a página atual

for($i = $p+1; $i <= $p+$max_links; $i++) {

// Verifica se a página atual é maior do que a última página. Se for, não faz nada.

if(!($i > $pags)) {

$content .= "<a href='busca.php?q=".urlencode($busca)."p=".$i."'>".$i."</a> ";

}

}

// Exibe o link para última página. Ele será mostrado assim: >> (>> em ASCII)

$content .= "<a href='busca.php?q=".urlencode($busca)."p=".$pags."'>>></a> ";

}

?>

<html>

<head>

<title>Busca</title>

</head>

<body>

<h1>Buscando por <b><?=$busca?></h1>

<p><?=$content?></p>

</body>

</html>

</body>

</html>


Por favor quem puder me ajudar eu agradeço,pois faz dias que estou tentando e acredito no fórum obrigado.

(OBS: esta é a primeira vez que posto em um fórum se eu fiz algo errado me perdoem)

a esqueci de dizer que o erro é nesta linha

$quantidade = mysql_num_rows($query);


e o erro diz isso Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

Compartilhar este post


Link para o post
Compartilhar em outros sites

Query was empty

 

Sua consulta está indo vazia, verifique.

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

 

Com a consulta vazia, não tem resultado, o que é esperado por essa função.

Compartilhar este post


Link para o post
Compartilhar em outros sites


$query = mysql_query("SELECT * FROM videos WHERE 'titulo','estado','cidade','descricao,'thumb' LIKE '%$busca%' OR conteudo LIKE '%$busca%' LIMIT $page,$qnt");

 

mysql_query($query)or die( mysql_error() ); // <<< WTF????????????

// ----------------------------------------------------------------------

 

 

$query = "SELECT * FROM videos WHERE 'titulo','estado','cidade','descricao,'thumb' LIKE '%$busca%' OR conteudo LIKE '%$busca%' LIMIT $page,$qnt";

$execute = mysql_query($query)or die( mysql_error() );

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.