http://www.wpbeginner.com/showcase/17-best-wordpress-resume-themes-for-your-online-cv/
<?php
class Sakila {
private $server = "localhost";
private $user = "root";
private $password = "";
private $db = "sakila";
public $conn;
function __construct() {
try {
$this->conn = new PDO("mysql:host=$this->server;dbname=$this->db", $this->user, $this->password);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$this->conn->exec("SET CHARACTER SET utf8");
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
}
function pepe(){
return 3;
}
function getActors() {
$sql = "select * from actor where 1=1";
$query = $this->conn->query($sql);
return $query->fetchAll();
}
function getActor($id) {
$sql = "select * from actor where actor_id=$id";
$query = $this->conn->query($sql);
return $query->fetch();
}
/**
*
* @param type $actor array asociativo con los campos del actor
* ejemplo: ['actor_id'=>1,'first_name'=>'Santiago','last_name'=>'Segura']
*/
function updateActor($actor) {
$sql = "update actor set first_name='" . $actor['first_name'] . "', last_name='" . $actor['last_name'] . "'
where actor_id=" . $actor['actor_id'] . ";";
$this->conn->exec($sql);
}
function deleteActor($id) {
$sql = "delete from actor where actor_id=$id";
$this->conn->exec($sql);
}
/**
* Inserta un nuevo actor o devuelve el id si ya existe
* @param string valor de first_name
* @param string valor de last_name
* @return int id
*/
function newActor($first_name, $last_name) {
if (!empty($first_name) && !empty($last_name)) {
$sql = "select * from actor where first_name=:first_name and last_name=:last_name";
$st = $this->conn->prepare($sql);
$st->execute([':first_name' => $first_name, ':last_name' => $last_name]);
if ($actor = $st->fetch()) {
return $actor['actor_id'];
}
$sql = "insert into actor (first_name,last_name) values (:first_name,:last_name)";
$st = $this->conn->prepare($sql);
$st->execute([':first_name' => $first_name, ':last_name' => $last_name]);
return $this->conn->lastInsertId();
} else {
return null;
}
}
/**
* Inserta una película en una categoría
* @param int id de la categoría
* @param string título de la película
*/
function newFilm($category_id, $film) {
$this->conn->beginTransaction();
try {
$sql = "insert into film(title,language_id) values (:film,1)";
$st = $this->conn->prepare($sql);
$st->execute([':film' => $film]);
$film_id = $this->conn->lastInsertId();
$sql = "insert into film_category(film_id,category_id) values($film_id,$category_id)";
$this->conn->exec($sql);
$this->conn->commit();
} catch (PDOException $e) {
echo $e->getMessage();
$this->conn->rollBack();
}
}
/**
* Crea un select con todas las categorías
*/
function selectCategory() {
$sql = "select * from category";
$q = $this->conn->query($sql);
$categorias = $q->fetchAll();
?>
<select name="category">
<?php foreach ($categorias as $categoria) {
?>
<option value="<?= $categoria['category_id'] ?>"><?= $categoria['name'] ?></option>
<?php } ?>
</select>
<?php
}
}
sakila.php
<?php
class Sakila {
private $server = "localhost";
private $user = "root";
private $password = "";
private $db = "sakila";
public $conn;
function __construct() {
try {
$this->conn = new PDO("mysql:host=$this->server;dbname=$this->db", $this->user, $this->password);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$this->conn->exec("SET CHARACTER SET utf8");
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
}
function getActors() {
$sql = "select * from actor";
$query = $this->conn->query($sql);
return $query->fetchAll();
}
function getActor($id) {
$sql = "select * from actor where actor_id=$id";
$query = $this->conn->query($sql);
return $query->fetch();
}
/**
*
* @param type $actor array asociativo con los campos del actor
* ejemplo: ['actor_id'=>1,'first_name'=>'Santiago','last_name'=>'Segura']
*/
function updateActor($actor) {
$sql = "update actor set first_name='" . $actor['first_name'] . "', last_name='" . $actor['last_name'] . "'
where actor_id=" . $actor['actor_id'] . ";";
$this->conn->exec($sql);
}
function deleteActor($id) {
$sql = "delete from actor where actor_id=$id";
$this->conn->exec($sql);
}
/**
* Inserta un nuevo actor o devuelve el id si ya existe
* @param string valor de first_name
* @param string valor de last_name
* @return int id
*/
function newActor($first_name, $last_name) {
if (!empty($first_name) && !empty($last_name)) {
$sql = "select * from actor where first_name=:first_name and last_name=:last_name";
$st = $this->conn->prepare($sql);
$st->execute([':first_name' => $first_name, ':last_name' => $last_name]);
if ($actor = $st->fetch()) {
return $actor['actor_id'];
}
$sql = "insert into actor (first_name,last_name) values (:first_name,:last_name)";
$st = $this->conn->prepare($sql);
$st->execute([':first_name' => $first_name, ':last_name' => $last_name]);
return $this->conn->lastInsertId();
} else {
return null;
}
}
/**
* Inserta una película en una categoría
* @param int id de la categoría
* @param string título de la película
*/
function newFilm($category_id, $film) {
$this->conn->beginTransaction();
try {
$sql = "insert into film(title,language_id) values (:film,1)";
$st = $this->conn->prepare($sql);
$st->execute([':film' => $film]);
$film_id = $this->conn->lastInsertId();
$sql = "insert into film_category(film_id,category_id) values($film_id,$category_id)";
$this->conn->exec($sql);
$this->conn->commit();
} catch (PDOException $e) {
echo $e->getMessage();
$this->conn->rollBack();
}
}
/**
* Crea un select con todas las categorías
*/
function selectCategory() {
$sql = "select * from category";
$q = $this->conn->query($sql);
$categorias = $q->fetchAll();
?>
<select name="category">
<?php foreach ($categorias as $categoria) {
?>
<option value="<?= $categoria['category_id'] ?>"><?= $categoria['name'] ?></option>
<?php } ?>
</select>
<?php
}
}
index.php
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/css/bootstrap.min.css" integrity="sha384-Zug+QiDoJOrZ5t4lssLdxGhVrurbmBWopoEl+M6BdEfwnCJZtKxi1KgxUyJq13dy" crossorigin="anonymous">
</head>
<body>
<div class="container">
<?php
include "sakila.php";
$sakila = new Sakila();
$nuevo = filter_input(INPUT_GET, 'nuevo');
$first_name = filter_input(INPUT_GET, 'first_name');
$last_name = filter_input(INPUT_GET, 'last_name');
if (!empty($nuevo) && !empty($first_name) && !empty($last_name)) {
$sakila->newActor($first_name, $last_name);
}
$cambiar = filter_input(INPUT_GET, 'cambiar');
$actor_id = filter_input(INPUT_GET, 'actor_id');
if (!empty($cambiar) && !empty($actor_id) && !empty($first_name) && !empty($last_name)) {
$sakila->updateActor(['actor_id' => $actor_id, 'first_name' => $first_name, 'last_name' => $last_name]);
}
$delete = filter_input(INPUT_POST, 'delete');
$actor_id = filter_input(INPUT_POST, 'actor_id');
if (!empty($delete) && !empty($actor_id)) {
$sakila->deleteActor($actor_id);
}
$actores = $sakila->getActors();
?>
<h1>Mantenimiento actores</h1>
<form>
<div class="form-group">
<label for="first_name">Nombre:</label>
<input type="text" class="form-control" name="first_name">
</div>
<div class="form-group">
<label for="last_name">Apellidos:</label>
<input type="text" class="form-control" name="last_name">
</div>
<input class="btn btn-success" type="submit" name="nuevo" value="Nuevo">
</form>
<table class="table">
<tr><td>Nombre</td><td>Apellidos</td><td>Acciones</td></tr>
<?php
foreach ($actores as $actor) {
?>
<tr><td><?= $actor['first_name'] ?></td><td><?= $actor['last_name'] ?></td>
<td><a href="editar.php?actor_id=<?= $actor['actor_id'] ?>" class="btn btn-success">Editar</a>
<form action="index.php" method="post" style="float:left;margin-right: 10px">
<input type="hidden" name="actor_id" value="<?= $actor['actor_id'] ?>">
<input class="btn btn-success" type="submit" name="delete" value="Borrar">
</form>
</td></tr>
<?php
}
?>
</table>
</div>
</body>
</html>
editar.php
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/css/bootstrap.min.css" integrity="sha384-Zug+QiDoJOrZ5t4lssLdxGhVrurbmBWopoEl+M6BdEfwnCJZtKxi1KgxUyJq13dy" crossorigin="anonymous">
</head>
<body>
<div class="container">
<?php
include "sakila.php";
$sakila = new Sakila();
$actor_id = filter_input(INPUT_GET, 'actor_id');
if (!empty($actor_id)) {
$actor = $sakila->getActor($actor_id);
}
?>
<h1>Editar actor</h1>
<form action="index.php">
<input type="hidden" class="form-control" name="actor_id" value="<?= $actor['actor_id'] ?>">
<div class="form-group">
<label for="first_name">Nombre:</label>
<input type="text" class="form-control" name="first_name" value="<?= $actor['first_name'] ?>">
</div>
<div class="form-group">
<label for="last_name">Apellidos:</label>
<input type="text" class="form-control" name="last_name" value="<?= $actor['last_name'] ?>">
</div>
<input class="btn btn-success" type="submit" name="cambiar" value="Cambiar">
</form>
</div>
</body>
</html>
Qué es composer:
https://styde.net/que-es-composer-y-como-usarlo/
Página oficial:
Instrucciones paso a paso:
<?php
class Sakila {
private $server = "localhost";
private $user = "root";
private $password = "";
private $db = "sakila";
private $conn;
function __construct() {
try {
$this->conn = new PDO("mysql:host=$this->server;dbname=$this->db", $this->user, $this->password);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$this->conn->exec("SET CHARACTER SET utf8");
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
}
/**
* Inserta un nuevo actor o devuelve el id si ya existe
* @param string valor de first_name
* @param string valor de last_name
* @return int id
*/
function newActor($first_name, $last_name) {
if (!empty($first_name) && !empty($last_name)) {
$sql = "select * from actor where first_name='$first_name' and last_name='$last_name'";
$c = $this->conn->query($sql);
if ($actor = $c->fetch()) {
return $actor['actor_id'];
}
$sql = "insert into actor (first_name,last_name) values ('$first_name','$last_name')";
$this->conn->exec($sql);
return $this->conn->lastInsertId();
} else {
return null;
}
}
/**
* Inserta una película en una categoría
* @param int id de la categoría
* @param string título de la película
*/
function newFilm($category_id, $film) {
$sql = "insert into film(title,language_id) values ('$film',1)";
$this->conn->exec($sql);
$film_id = $this->conn->lastInsertId();
$sql = "insert into film_category(film_id,category_id) values($film_id,$category_id)";
$this->conn->exec($sql);
}
/**
* Crea un select con todas las categorías
*/
function selectCategory() {
$sql = "select * from category";
$q = $this->conn->query($sql);
$categorias = $q->fetchAll();
?>
<select name="category">
<?php foreach ($categorias as $categoria) {
?>
<option value="<?= $categoria['category_id'] ?>"><?= $categoria['name'] ?></option>
<?php } ?>
</select>
<?php
}
}
sakila.php
<?php
class Sakila {
private $server = "localhost";
private $user = "root";
private $password = "";
private $db = "sakila";
private $conn;
function __construct() {
try {
$this->conn = new PDO("mysql:host=$this->server;dbname=$this->db", $this->user, $this->password);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$this->conn->exec("SET CHARACTER SET utf8");
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
}
function newFilm($category_id, $film) {
$sql = "insert into film(title,language_id) values ('$film',1)";
$this->conn->exec($sql);
$film_id = $this->conn->lastInsertId();
$sql = "insert into film_category(film_id,category_id) values($film_id,$category_id)";
$this->conn->exec($sql);
}
function selectCategory() {
$sql = "select * from category";
$q = $this->conn->query($sql);
$categorias = $q->fetchAll();
?>
<select name="category">
<?php foreach ($categorias as $categoria) {
?>
<option value="<?= $categoria['category_id'] ?>"><?= $categoria['name'] ?></option>
<?php } ?>
</select>
<?php
}
}
index.php
<?php
include "sakila.php";
$sakila = new Sakila();
$category = filter_input(INPUT_GET, "category", FILTER_VALIDATE_INT);
$film = filter_input(INPUT_GET, "film");
if (!empty($category) && !empty($film)) {
$sakila->newFilm($category, $film);
}
?>
<form>
Categoría:
<?php $sakila->selectCategory(); ?>
<br/>
Película: <input type="text" name="film"><br/>
<input type="submit">
</form>
<?php
$server = "localhost";
$user = "root";
$password = "";
$db = "sakila";
try {
$conn = new PDO("mysql:host=$server;dbname=$db", $user, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$conn->exec("SET CHARACTER SET utf8");
$category = filter_input(INPUT_GET, "category", FILTER_VALIDATE_INT);
$film = filter_input(INPUT_GET, "film");
if (!empty($category) && !empty($film)) {
$sql="insert into film(title,language_id) values ('$film',1)";
$conn->exec($sql);
$film_id=$conn->lastInsertId();
$sql="insert into film_category(film_id,category_id) values($film_id,$category)";
$conn->exec($sql);
}
$sql = "select * from category";
$q = $conn->query($sql);
$categorias = $q->fetchAll();
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
<form>
Categoría:
<select name="category">
<?php foreach ($categorias as $categoria) {
?>
<option value="<?= $categoria['category_id'] ?>"><?= $categoria['name'] ?></option>
<?php } ?>
</select>
<br/>
Película: <input type="text" name="film"><br/>
<input type="submit">
</form>
<?php
class Empleado {
private $nombre;
private $sueldo;
function __construct($nombre, $sueldo) {
$this->nombre = $nombre;
}
function paga() {
return $this->sueldo / 12;
}
public function __get($propiedad) {
if (property_exists($this, $propiedad)) {
return $this->$propiedad;
} else {
throw new Exception("No existe la propiedad");
}
}
public function __set($property, $value) {
if (property_exists($this, $property)) {
if ($property == "sueldo") {
if ($value > 600) {
$this->sueldo = $value;
} else {
throw new Exception("Sueldo debe ser > 600");
}
} elseif (!empty($value)) {
$this->$property = $value;
}
}
}
}
class comercial extends empleado {
private $comision = .1;
protected $ventas;
public function __construct($nombre, $sueldo, $ventas) {
parent::__construct($nombre, $sueldo);
$this->ventas = $ventas;
}
function paga() {
$p = parent::paga();
return $p + $this->ventas * $this->comision / 12;
}
}
index.php
$juan = new Empleado("Juan", 300);
$p=new comercial("Juasdan", 300,9000);
echo $p->nombre;
echo $p->paga();
try {
$juan->sueldo = 6000;
echo $juan->sueldo;
echo $juan->paga();
} catch (Exception $error) {
echo $error->getMessage();
}