<?php


		
class Model{

	public static function inserir($tabela, array $dados) {
		
		include "../conexao.php";
	    $campos = implode(",", array_keys($dados));
	    $valores = ":" . implode(", :", array_keys($dados));

	    $sql = "INSERT INTO {$tabela} ({$campos}) VALUES ({$valores})";
	    
	    $stmt = $conn->prepare($sql);
	    foreach ($dados as $chave => $valor) {
		$tipo = (is_int($valor)) ? PDO::PARAM_INT : PDO::PARAM_STR;
		$stmt->bindValue(":$chave", $valor, $tipo);
	    }
	    if ($stmt->execute()) {
			return $conn->lastInsertId();
	    }else{
		
		print"<script> alert('Falha na inserção'); </script>";
		return FALSE;
	    }
	}

	public static function alterar($tabela, $dados, $condicao) {
		include "../conexao.php";
	    $parametro = null;
	    foreach ($dados as $chave => $valor) {
		$parametro .="$chave=:$chave,";
	    }
	    $parametro = rtrim($parametro, ',');


	    $sql = "UPDATE {$tabela} SET {$parametro} WHERE {$condicao}";

	    $stmt = $conn->prepare($sql);

	    foreach ($dados as $chave => $valor) {
		$tipo = (is_int($valor)) ? PDO::PARAM_INT : PDO::PARAM_STR;
		$stmt->bindValue(":$chave", $valor, $tipo);
	    }
	    return $stmt->execute();
	}

	public static function deletar($tabela, $condicao) {
		include "../conexao.php";
	  
	    $sql = "DELETE FROM {$tabela} WHERE {$condicao}";


	    $stmt = $conn->prepare($sql);
	    if ($stmt->execute()){
		return TRUE;
		//print"<script> alert('Excluida com sucesso'); </script>";
		
	    }else{
		print"<script> alert('Falha na exclusão'); </script>";
		return FALSE;
		
	    }
	}
	
	public static function selecionar($tabela, $array) {
		include "../conexao.php";
	  	$linhas = implode(",", array_values($array));
		$sql = "SELECT {$linhas} FROM {$tabela}";
	
		$stmt = $conn->prepare($sql);
		$stmt->execute();
		$fetch = $stmt->fetchAll();

		return $fetch;
	    
	}

	public static function selecionarWHERE($tabela, $array, $condicao) {
		include "../conexao.php";
	    $linhas = implode(",", array_values($array));

	    $sql = "SELECT {$linhas} FROM {$tabela} WHERE {$condicao}";	

	    $stmt = $conn->prepare($sql);
	    $stmt->execute();
	    $fetch = $stmt->fetchAll();

	   
	    return $fetch;
	}
	
	
	public static function withTable($tabela, $array, $condicao){
		$result  = Model::selecionarWHERE($tabela, $array, $condicao);
		//array_push($r->telefones, $result);
		
		return $result;
	}

	function with($tabela, $array, $condicao){
		$result = Model::withTable($tabela, $array, $condicao);
		$this->$tabela = $result;
		return $result;
	}
		
	

}

?>

