Ir para conteúdo

Arquivado

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

gedmilson

Atualizar sistema de likes

Recommended Posts

conexão depreciada

<?php
    $host = 'localhost';
    $user = 'root';
    $pass = '';
    $banco = 'video_aula';
    
    $conectar = mysql_connect($host, $user, $pass);
    if($conectar){
        mysql_select_db($banco);
    }
?>

nova conexão

<?php

date_default_timezone_set('America/Sao_Paulo');


/**
 * PDO PHP Persistence Class
 * https://github.com/victortassinari/pdophpclass
 *
 *
 * @author Victor Tassinari - victortassinarix@gmail.com
 */
 
class Banco {

    private static $connection;
    private $debug;
    private $server;
    private $user;
    private $password;
    private $database;

    public function __construct() {
        $this->debug = true;
        $this->server = "127.0.0.1";
        $this->user = "root";
        $this->password = "";
        $this->database = "video_aula";
    }

    /**
     * Create a database connection or return the connection already open using Singletion Design Patern
     * @return PDOConnection|null
     */
    public function getConnection() {
        try {
            if (self::$connection == null) {
                self::$connection = new PDO("mysql:host={$this->server};dbname={$this->database};charset=utf8", $this->user, $this->password);
                self::$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                self::$connection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
                self::$connection->setAttribute(PDO::ATTR_PERSISTENT, true);
            }
            return self::$connection;
        } catch (PDOException $ex) {
            if ($this->debug) {
                echo "<b>Error on getConnection(): </b>" . $ex->getMessage() . "<br/>";
            }
            die();
            return null;
        }
    }

    /**
     * Unset connection
     * @return void
     */
    public function Disconnect() {
        $this->connection = null;
    }

    /**
     * Return the last id of insert statement
     * @return int
     */
    public function GetLastID() {
        return $this->getConnection()->lastInsertId();
    }

    /**
     * Start one database transaction
     * @return void
     */
    public function BeginTransaction() {
        return $this->getConnection()->beginTransaction();
    }

    /**
     * Commit changes on opened transaction
     * @return void
     */
    public function Commit() {
        return $this->getConnection()->commit();
    }

    /**
     * Roolback changes on opened transaction
     * @return void
     */
    public function Rollback() {
        return $this->getConnection()->rollBack();
    }

    /**
     * returns the result of a query (select) of only one row
     * @param string $sql the sql string
     * @param array $params the array of parameters (array(":col1" => "val1",":col2" => "val2"))
     * @return one position array for the result of query
     */
    public function ExecuteQueryOneRow($sql, $params = null) {
        try {
            $stmt = $this->getConnection()->prepare($sql);
            $stmt->execute($params);
            return $stmt->fetch(PDO::FETCH_ASSOC);
        } catch (PDOException $ex) {
            if ($this->debug) {
                echo "<b>Error on ExecuteQueryOneRow():</b> " . $ex->getMessage() . "<br />";
                echo "<br /><b>SQL: </b>" . $sql . "<br />";

                echo "<br /><b>Parameters: </b>";
                print_r($params) . "<br />";
            }
            die();
            return null;
        }
    }

    /**
     * returns the result of a query (select)
     * @param string $sql the sql string
     * @param array $params the array of parameters (array(":col1" => "val1",":col2" => "val2"))
     * @return array for the result of query
     */
    public function ExecuteQuery($sql, $params = null) {
        try {
            $stmt = $this->getConnection()->prepare($sql);
            $stmt->execute($params);
            return $stmt->fetchAll(PDO::FETCH_ASSOC);
        } catch (PDOException $ex) {
            if ($this->debug) {
                echo "<b>Error on ExecuteQuery():</b> " . $ex->getMessage() . "<br />";
                echo "<br /><b>SQL: </b>" . $sql . "<br />";

                echo "<br /><b>Parameters: </b>";
                print_r($params) . "<br />";
            }
            die();
            return null;
        }
    }

    /**
     * returns if the query was successful
     * @param string $sql the sql string
     * @param array $params the array of parameters (array(":col1" => "val1",":col2" => "val2"))
     * @return boolean
     */
    public function ExecuteNonQuery($sql, $params = null) {
        try {
            $stmt = $this->getConnection()->prepare($sql);
            return $stmt->execute($params);
        } catch (PDOException $ex) {
            if ($this->debug) {
                echo "<b>Error on ExecuteNonQuery():</b> " . $ex->getMessage() . "<br />";
                echo "<br /><b>SQL: </b>" . $sql . "<br />";

                echo "<br /><b>Parameters: </b>";
                print_r($params) . "<br />";
            }
            die();
            return false;
        }
    }

}

funções depreciadas

	function get_artigos(){
		$artigos = array();
		
		$selecionar = mysql_query("SELECT `artigo_id`,`titulo`,`likes` FROM `artigos`");
		
		while($row = mysql_fetch_object($selecionar)){
			$artigos[] = array(
				'id_artigo' => $row->artigo_id,
				'titulo' => $row->titulo,
				'likes' => $row->likes
			);
		}
		
		return $artigos;
	}

Função actualizada

function RetornarArtigos(){
        try {
            $sql = "SELECT id_artigo, titulo, likes FROM artigos";
            $dt = $this->pdo->ExecuteQuery($sql);
            $listaArtigo = []; 
        
        foreach ($dt as $art) {
                $artigo = new Artigo();
                $artigo->setCod($art["id_artigo"]);
                $artigo->setTitulo($art["titulo"]);
                $artigo->setLikes($art["likes"]);

                $listaArtigo[] = $artigo;
            }
        
        return $listaArtigo;
    } catch (PDOException $ex) {
            if ($this->debug) {
                echo "ERRO: {$ex->getMessage()} LINE: {$ex->getLine()}";
            }
            return null;
        }
    }  

Função depreciada

function verificar_clicado($id_artigo, $id_usuario){
        $id_artigo = (int)$id_artigo;
        $id_usuario = (int)$id_usuario;
        $verificar = mysql_query("SELECT like_id FROM `likes` WHERE user_id = '$id_usuario' AND artigo_id = '$id_artigo'");
        return (mysql_num_rows($verificar) >= 1) ? true : false;

Não consegui actualizar

Função depreciada

function adicionar_like($id_artigo, $id_usuario){
		$id_artigo = (int)$id_artigo;
		$id_usuario = (int)$id_usuario;
		$atualizar_likes_post = mysql_query("UPDATE `artigos` SET likes = likes+1 WHERE artigo_id = '$id_artigo'");
		
		if($atualizar_likes_post){
			$inserir_like = mysql_query("INSERT INTO `likes` (user_id, artigo_id) VALUES ('$id_usuario','$id_artigo')");
			if($inserir_like){
				return true;
				
			}else{
				return false;
				
			}
		}
	}

Não consegui actualizar

Função depreciada

function retornar_likes($id_artigo){
		$id_artigo = (int)$id_artigo;
		$selecionar_num_likes = mysql_query("SELECT likes FROM `artigos` WHERE artigo_id = '$id_artigo'");
		$fetch_likes = mysql_fetch_object($selecionar_num_likes);
		return $fetch_likes->likes;
	}
Dei um modificada no index mas não funcionou muito bém
<?php 
session_start();
require_once("Controller/ArtigoController.php");
require_once("Model/Artigo.php");
$artigoController = new ArtigoController();
//$_SESSION['id_usuario'] = 3;

 //include_once "funcoes/funcoes.php";?>
<!DOCTYPE HTML>
<html>
	<head>
		<title>Sistema de Likes com PHP e Javascript</title>
		<link href="style.css" rel="stylesheet" type="text/css" />
		<script type="text/javascript" src="js/jquery.js"></script>
		<script type="text/javascript" src="js/funcoes.js"></script>
	</head>
	
	<body bgcolor="#ebebeb">
		<?php 
		$listaArtigo = $artigoController->RetornarArtigos();
			//$resultados = get_artigos();
			
			if(count($listaArtigo) == 0){
				echo 'Desculpe, mais não foram encontrados artigos';
			}else{
				echo '<ul>';
				foreach ($listaArtigo as $artigos) {
					?>
					<li><p><?= $artigos->getTitulo(); ?></p>
					<p><a href="#" class="like" onclick="javascript:add_like(echo $artigos->getId_artigo();)">Like</a> 
					<span id="artigo_<?= $artigos->getId_artigo(); ?>_like"><?= $artigos->getId_artigo(); ?></span> gostaram disto!</p>
					</li>

					<?php
				}
				?>
				</ul>
				<?php
			}
		?>
	</body>
</html>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver quase todos os problemas. Mas estou com uma pequena dificuldade em passar esse valor para jquery

onclick="javascript:add_like(<?= $artigos->getCod(); ?>)"

Estou precisando passar esse valor para cá:

function add_like(id_artigo){
	/*$('#artigo_'+id_artigo+'_like').html('<img src="imgs/loading.gif" />');*/
	
	$.post('init/add_like.php', {artigo_id:id_artigo}, function(dados){
		if(dados == 'sucesso'){
			get_like(id_artigo);
			
		}else{
			alert("Você já votou neste artigo");
			//location.href="index.php";
		}
	});
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Madk
      O CODIGO ESTA NOS COMENTARIOS
      Alguem poderia me ajudar, como eu posso por login na minha pagina index.php e cadastro na pagina cadastro.php, so que com um nivel de acesso, se a pessoa que logar for adm vai para a pagina indexadm.php, JA TENHO o CRUD feito e queria saber como por essa funcao de login, se puderem me ajudar agradeceria dms.
    • Por rodrigo antonio cruz
      Ola Senhores venho pedir uma ajudinha boba, mas q ta me tirando a paz, estou estudando php orientado a objetos e estou tentando fazer uma consulta específica porem n consigo. Segue abaixo o código da conexao PHP OO com BD mysql e o codigo do Select. Desde ja Obrigado a quem puder me ajudar!
      ESSA É A CONEXAO.PHP QUE CONECTA AO BD, QUE ESTA DENTRO DO CONFIG: <?php class conexao { private $servidor; private $usuario; private $senha; private $banco; public $conexao; public function __construct(){ $this->servidor = "127.0.0.1"; $this->usuario = "root"; $this->senha = ""; $this->banco = "cliente"; } function conectar(){ $this->conexao= new mysqli($this->servidor,$this->usuario,$this->senha,$this->banco); } function fechar(){ $this->conexao->close(); } } ?> ESSA E A QUERY QUE ESTA DENTRO DA CLASSE CLIENTE NO MODEL: <?php class clientes { private $conexao; public function __construct() { require_once('../config/conexao.php'); $this->conexao= new conexao(); $this->conexao->conectar(); } function buscar(){ $nome = $_POST["nome"]; $sql="SELECT * FROM cliente WHERE `nome` LIKE '$nome'"; $result = $this->conexao->conexao->query($sql); if ($resultado->num_rows > 0) { $r=$resultado->fetch_assoc();// AQUI JÁ TENTEI WHILE, FOREACH, DE TUDO, SEI QUE ALGO TO FAZENDO DE ERRADO,MAS N ACHEI ONDE! } echo $r; } } ?>  
    • Por MARCOS EVERTON
      #método para salvar dados do aluno
       public function Save(){
              try {
                  $query = "INSERT INTO $this->table (ra,nome,rg,endereco,sexo,data_nasc) "
                          . "VALUES (:ra,:nome,:rg,:endereco,:sexo,:data_nasc)";
                  $stm = static::$pdo->prepare($query);
                  $stm->bindParam(':ra', $this->ra);
                  $stm->bindParam(':nome', $this->nome);
                  $stm->bindParam(':rg', $this->rg);
                  $stm->bindParam(':endereco', $this->endereco);
                  $stm->bindParam(':sexo', $this->sexo);
                  $stm->bindParam(':datanasc', $this->data_nasc);
                 
                  } catch (PDOException $ex) {
                      print $ex->getMessage();
                  } 
                  return $stm->execute();
          }
      #página que deve enserir dados do aluno no banco
      <?php ini_set('display_errors',1);
      ini_set('display_startup_erros',1);
      error_reporting(E_ALL);?>
      <!DOCTYPE html>
      <html>
          <head>
              <meta charset="UTF-8">
              <title>Cadastro de Alunos</title>
              <meta>
              <link href="css/bootstrap.min.css" rel="stylesheet">
          </head>
          <body>
              <forma action="" method="post" name="form" class="form-inline">
                  <div style="margin-left: 500px;">
                  <div class="form-group col-lg-12" style="margin-top: 100px;" >
                      <label class="sr-only" for="">NOME</label>
                      <input type="name" class="form-control" id="exampleInputEmail3" name="nome" placeholder="informe nome">
                  </div>
                  <div class="form-group col-lg-12">
                      <label class="sr-only" for="">RA</label>
                      <input type="name" class="form-control" id="exampleInputPassword3" name="ra" placeholder="informe ra">
                  </div>
                  <div class="form-group col-lg-12">
                      <label class="sr-only" for="">RG</label>
                      <input type="name" class="form-control" id="exampleInputPassword3" name="rg" placeholder="informe seu rg">
                  </div>
                  <div class="form-group col-lg-12">
                      <label class="sr-only" for="">ENDEREÇO</label>
                      <input type="name" class="form-control" id="exampleInputPassword3" name="endereco" placeholder="informe seu endereço">
                  </div>
                  <div class="form-group col-lg-12">
                      <label class="sr-only" for="">SEXO</label>
                      <input type="name" class="form-control" id="exampleInputPassword3" name="sexo" placeholder="informe sexo">
                  </div>
                  <div class="form-group col-lg-12">
                      <label class="sr-only" for="">DATA DE NASCIMENTO</label>
                      <input type="name" class="form-control" id="exampleInputPassword3" name="data_nasc" placeholder="informe data de nascimento">
                  </div>
                      <button type="submit" class="btn btn-default" name="salvar" style="color: blue; margin-top: 20px; margin-left: 60px;">Salvar</button>
                  </div>
              </form>
              <?php
              function __autoload($classname){
                  require_once './classes/'.$classname.'.php';
              }
                  $salvar = filter_input(INPUT_POST, 'salvar');
                  if(isset($salvar)){ 
                      $nome = filter_input(INPUT_POST, 'nome',FILTER_SANITIZE_FULL_SPECIAL_CHARS);
                      $ra = filter_input(INPUT_POST, 'ra',FILTER_SANITIZE_FULL_SPECIAL_CHARS);
                      $rg = filter_input(INPUT_POST, 'rg',FILTER_SANITIZE_FULL_SPECIAL_CHARS);
                      $endereco = filter_input(INPUT_POST, 'endereco',FILTER_SANITIZE_FULL_SPECIAL_CHARS);
                      $sexo = filter_input(INPUT_POST, 'sexo',FILTER_SANITIZE_FULL_SPECIAL_CHARS);
                      $data_nasc = filter_input(INPUT_POST, 'data_nasc',FILTER_SANITIZE_FULL_SPECIAL_CHARS);
                      $aluno = new Aluno();
                      $aluno->setNome($nome);
                      $aluno->setRa($ra);
                      $aluno->setRg($rg);
                      $aluno->setEndereco($endereco);
                      $aluno->setSexo($sexo);
                      $aluno->setData_nasc($data_nasc); 
                      $aluno->Save();
                      ?>
                  <script type="text/javascript">alert('Aluno cadastrado com sucesso!');</script>
                  <?php
                  }else {
                      ?>
                  <script>alert('Falha ao cadastrar aluno!!!');</script>
                  <?php
                  }
              ?>
          </body>
      </html>
      // Obs: no entanto quando tento salvar não retorna nenhuma ação, nem mesmo exibe algum erro na tela. 
      //Desde já peço a ajuda de voces para solucionar o problema.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.