Ir para conteúdo

POWERED BY:

Arquivado

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

Rodrigo_laguna

PDO - Buscar noticia pelo ID e atualizar visualizações

Recommended Posts

Olá pessoal, no código abaixo a pagina me retorna uma noticia peloi seu ID, e na hora de fazer o update no campo cliquesMateria ele insere +1 conforme meu $sql_select, porém acima do site aparece a seguinte linha de erro:

Erro ao selecionarSQLSTATE[HY000]: General error

 

O erro é retornado quando o site está online mas em localhost não me retorna erro algum, não sei se devo alterar os nomes das variáveis de atualização ou se está faltando alguma coisa, dentre as tentativas que fiz não obtive sucesso, valeu!

 

<?php
///////////////////////////////////////////////////////ATUALIZA CLIQUES ///////////////////////////////////////////////////////
$id = (int)$_GET['id'];
$sql_select = "UPDATE tb_materias SET cliquesMateria = cliquesMateria + 1 WHERE idMateria = $id";

try{
$query_select = $conecta->prepare($sql_select);
       $query_select->execute();
$resultado_query = $query_select->fetchAll(PDO::FETCH_ASSOC);

$count = $query_select->rowCount(PDO::FETCH_ASSOC);

}catch (PDOexception $error_select){
  echo 'Erro ao selecionar'.$error_select->getMessage();
}

//if($count == '0'){
 // echo 'Nada encontrado'; 	
//}else{

foreach($resultado_query as $res){
	$idMateria = $res['idMateria'];
	$titulo1 = $res['titulo1'];
	$cliquesMateria = $res['cliquesMateria'];
}		
?>

<?php
// -- AQUI --
// Receba o valor do id pela url, e selecione apenas ele na tabela
$id = (int)$_GET['id'];
$sql_select = 'SELECT * FROM tb_materias WHERE idMateria = '. $id;

try{
$query_select = $conecta->prepare($sql_select);
   $query_select->execute();
$resultado_query = $query_select->fetchAll(PDO::FETCH_ASSOC);

$count = $query_select->rowCount(PDO::FETCH_ASSOC);

}catch (PDOexception $error_select){
  echo 'Erro ao selecionar '.$error_select->getMessage();
}

//if($count == '0'){
 // echo 'Nada encontrado'; 	
//}else{

foreach($resultado_query as $res){
	$idMateria	= $res['idMateria'];
	$titulo1 	= $res['titulo1'];
	$cliquesMateria = $res['cliquesMateria'];
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, você está cometendo um erro, não existe isso aqui:

$count = $query_select->rowCount(PDO::FETCH_ASSOC);

 

Não tem isso no rowCount, de acordo com a documentação, o rowCount, retorna apenas o número de linhas encontradas na instrução SQL

Não inclui nenhum parâmetro adicional, que possa escolher a forma que o resultado ou número de linhas deve ser retornado, troque para:

$count = $query_select->rowCount();

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Andrey eu coloquei conforme sua dica mas o erro permaneceu, e é no meu UPDATE que ele mostra o erro, tem alguma ideia do que possa ser? meu selct está correto? Fiz agora dessa forma o UPDATE podes conferir e ver se está ok?

<?php
////////////////////////ATUALIZA CLIQUES //////////////////////////////////
$id = (int)$_GET['id'];
$sql_a = "UPDATE tb_materias SET cliquesMateria = cliquesMateria + 1 WHERE idMateria = $id";

try{
$query_a = $conecta->prepare($sql_a);
$query_a->bindValue(':cliquesMateria',$cliquesMateria,PDO::PARAM_STR);
   $query_a->execute();
//$mostra_query = $query_a->fetchAll(PDO::FETCH_ASSOC);	
//$count = $query_a->rowCount();

}catch (PDOexception $error_a){
  echo 'Erro ao selecionar'.$error_a->getMessage();
}
?>

Dessa maneira ele estou pegando o ID certo da noticia e faz a contagem do clique sem me retornar erro algum, está correto assim?

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.