Good Night, I am trying to implement a method that registers the user comment in the database in the comment table that has the foreign key user_id. How do I get access to this userid? I tried through my getIdUsuario method of the User class, but it returns null. When the user logs in to the system I am passing all of the select information through the set () functions and even then it returns null.
<? php
require_once("classes/Conexao.class.php");
class UsuarioDAO {
function __construct() {
/
$this->con = new Conexao();
$this->pdo = $this->con->Connect(); /
}
public
function existeUsuario($email) {
$query = $this - > pdo - > prepare("SELECT * FROM 'usuario' WHERE email = '$email'");
var_dump($query);
$query - > execute();
if ($query - > rowCount() >= 1) {
return true;
} else {
return false;
}
} //fecha metodo existe
public
function logar($usuario) {
try {
$query = $this - > pdo - > prepare("SELECT * FROM usuario WHERE email = :email AND senha = :senha");
$param = array(
":email" => $usuario - > getEmail(),
":senha" => $usuario - > getSenha()
);
$query - > execute($param);
if ($query - > rowCount() >= 1) {
while ($row = $query - > fetch(PDO::FETCH_ASSOC)) {
$usuario - > setNome($row['nome']);
$usuario - > setEmail($row['email']);
$usuario - > setSenha($row['senha']);
$usuario - > setIdUsuario($row['id_usuario']);
}
$usuario_id = $usuario - > getIdUsuario();
return $usuario; //executa a sql com os parametros
}
} catch (PDOException $ex) { //caso haja erro
echo "ERRO:" + $ex - > getMessage(); //exibe o erro
}
}
public
function cadastrar($usuario) {
try {
$param = array(
":nome" => $usuario - > getNome(),
":email" => $usuario - > getEmail(),
":senha" => $usuario - > getSenha()
);
$email = $usuario - > getEmail();
if ($this - > existeUsuario($email)) { //se existir usuario com esse email
echo "Usuário ja cadastrado!";
return false;
} else {
$query = $this - > pdo - > prepare("INSERT INTO usuario(nome, email, senha)
VALUES (:nome, :email, :senha)");
$query - > execute($param); //executa a sql com os parametros
return true;
}
} catch (PDOException $ex) {
echo "ERRO:" + $ex - > getMessage();
}
} //fecha a funcao
} //fecha classe
?>
<?php
require_once("/classes/Conexao.class.php"); //Incluimos o arquivo de conexão.
require_once("classes/entidade/Usuario.class.php");
require_once("classes/dao/UsuarioDAO.class.php");
class comentarioDAO { //Criamos uma classe chamada cometarioDAO
function __construct() { //Método contruct inicia automáricamente quando a classe é instanciada.
$this->con = new Conexao(); //Propriedade con instancia nossa classe de conexao.
$this->pdo = $this->con->Connect(); //Propriedade con acessa o método Connect que esta dentro da classe conexao.
}
public function cadatrarComentario(comentario $entComentario) {//Criamos um método que será responsável por gravar os comentários, como parâmetro ele recebe nossa entidade comentário.
try { //Executa nosso código
////pagina, nome, e-mail, comentário, data, hora, ip e status
$usuario = new Usuario();
$usuarioDAO = new UsuarioDAO();
$usuarioDAO->logar($usuario);
$email = $usuario->getEmail();
print_r($usuario);
$query1 = $this->pdo->prepare("SELECT id_usuario FROM usuario WHERE email = $email");
$resultId = $query1->execute(array(':email'=>email));
while ($row = $resultId->fetch(PDO::FETCH_ASSOC)) {
$usuario->setIdUsuario($row['id_usuario']);
}
$stmt = $this->pdo->prepare("INSERT INTO comentario (comentario, data, hora, id_usuario)
VALUES ( :comentario, :data, :hora, :idUsuario)");
$param = array(//Criamos um array associativo, onde temos :nome será trocado pelo valor vindo do nosso método get da entidade, estes dados erão tratados apra evitar probleamas
":comentario" => $entComentario->getComentario(),
":data" => date("Y/m/d"),
":hora" => date("h:i:s"),
":idUsuario" => $usuario->getIdUsuario()
);
return $stmt->execute($param); // Aqui executamos nosso SQL e passamos os parâmetros, o reusltado é retornado no nosso método
} catch (PDOException $ex) { //Se houver algum erro no nosso código vamos criar uma exceção para informar onde esta o erro.
echo "ERRO: " + $ex->getMessage(); //Exibimos a mensagem de erro e pegamos o código do erro.
}
}
//Método de consulta
public function consultarComentario($pagina) {
try { //Executa nosso código
$stmt = $this->pdo->prepare("SELECT * FROM comentarios WHERE cm_pagina = :pagina AND cm_status = 1");
$param = array(":pagina" => $pagina);//Neste caso não precisamos chamar a entidade, é mais trabalhoso e apenas vamos passar um valor como parâmetro.
$stmt->execute($param); //Passamos o parâmetro para a execução.
return $stmt->fetchall(PDO::FETCH_ASSOC); //Resumindo aqui retornamos todos os dados da nossa consulta,se quer retornar só um use apenas fetch e não fetchall
} catch (PDOException $ex) { //Se houver algum erro no nosso código vamos criar uma exceção para informar onde esta o erro.
echo "ERRO: " + $ex->getMessage(); //Exibimos a mensagem de erro e pegamos o código do erro.
}
}
}
?>
<?php
class Usuario {
protected $idUsuario;
protected $nome;
protected $email;
protected $senha;
protected $foto;
public function getIdUsuario(){
return $this->idUsuario;
}
public function setIdUsuario($idUsuario){
$this->idUsuario = $idUsuario;
}
public function getNome(){
return $this->nome;
}
public function setNome($nome){
$this->nome = $nome;
}
public function getEmail(){
return $this->email;
}
public function setEmail($email){
$this->email = $email;
}
public function getSenha(){
return $this->senha;
}
public function setSenha($senha){
$this->senha = $senha;
}
public function getFoto(){
return $this->foto;
}
public function setFoto($foto){
$this->foto = $foto;
}
}//fecha a classe
?>
I can not access the idUsuario between classes