<?php class miClase { public $propiedad; function muestraContenido() { echo $this->propiedad; } } $obj1 = new miClase; $obj2 = new miClase(); $obj1->propiedad = "Hola"; $obj2->propiedad = "Adios"; echo $obj1->propiedad; $obj2->muestraContenido(); class Alumno { public $nombre; public $apellido; public $nota; private $cuota; function nombreCompleto() { echo $this->nombre . " " . $this->apellido; } function aprobado() { if ($this->nota >= 5) { return true; } else { return false; } } function cuota($valor) { if ($valor == 100 || $valor == 200 || $valor == 300) { $this->cuota = $valor; } } function anualidad() { return $this->cuota * 12; } } $juan = new Alumno(); $ana = new Alumno(); $juan->nombre = "Juan"; $juan->apellido = "Pérez"; $juan->nota = 6; $juan->nombreCompleto(); if ($juan->aprobado()) { echo "Aprobado!!!"; } $juan->cuota(200); echo $juan->anualidad(); $ana->apellido = "Ana";
Mantenimiento tienda simple
Mantenimiento tienda orientado a objetos
Soluciones examen 2
/* * * MySQLi procedural * MySQLi orientat a objectes * PDO * * MySql MySqli PDO */ $sql = "insert into clientes (mail,password) values (:mail,:password)"; $st = $conn->prepare($sql); $st->execute(array(':mail' => 'pepe@pepe.com', ':password' => '1234')); $sql = "SELECT count(idproductos) as total FROM productos"; $st = $conn->prepare($sql); $st->execute(); $row = $st->fetch(); echo "El número de productos es: " . $row['total'] . "<br/>"; $sql = "SELECT sum(importe) as total FROM pedido"; $st = $conn->prepare($sql); $st->execute(); $row = $st->fetch(); echo "La suma de los importes de los pedidos es: " . $row['total'] . "<br/>"; $sql = "delete from productos where idproductos=:idproductos"; $st = $conn->prepare($sql); $st->execute(array(':idproductos' => 5)); $sql = "SELECT mail FROM clientes"; $st = $conn->prepare($sql); $st->execute(); while ($row = $st->fetch()) { echo $row['mail'] . "<br/>"; } $sql = "SELECT mail FROM clientes where mail like '%@gmail.com'"; $st = $conn->prepare($sql); $st->execute(); while ($row = $st->fetch()) { echo $row['mail'] . "<br/>"; } $sql = "insert into clientes (mail, password) values (:mail, :password)"; $st = $conn->prepare($sql); for ($i = 0; $i < 10; $i++) $st->execute(array(':mail' => 'test@test.com', ':password' => '1234')); function import_total_IVA($idclient) { global $conn; try { $sql = "select sum(import*(1+iva)) as total from comandes join clients using (idclients) where idclients=:idclients"; $stmt = $conn->prepare($sql); $stmt->execute(array(':idclients' => $idclient)); $fila = $stmt->fetch(); $total = $fila['total']; return $total; } catch (Exception $ex) { return 0; } }
Soluciones examen 1
//56 function lamaslarga($cad1, $cad2) { if (strlen($cad1) > strlen($cad2)) { return $cad1; } else { return $cad2; } } include_once 'funciones.php'; $f = fopen(‘alumnos.txt ’, ‘r’); $colores = array("rojo", "naranja", "amarillo", "verde", "cian", "azul", "violeta"); if ($resultado) { ?> <h1>Bien</h1> <?php } else { ?> <h2>Mal</h2> <?php } function invertir_cad($tabla) { for ($i = 0; $i < count($tabla); $i++) { $tabla2[$i] = strrev($tabla[$i]); } return $tabla2; } function tablero($numCeldas) { $num = 0; echo "<table border=1>"; for ($i = 0; $i < $numCeldas; $i++) { echo "<tr>"; for ($j = 0; $j < $numCeldas; $j++) { echo "<td>" . ($i + $j) . "</td>"; } echo "</tr>"; } echo "</table>"; }
Examen PHP acceso a datos
Examen PHP
Ejemplos repaso
<?php $a = 5; echo 'Hola <b>que</b> tal?'; if ($a == 5) { echo '<h1>Cabecera con echo</h1>' . '<h2>lalallalala</h2>' . '<p>texto tralalala</p>'; } if ($a == 5) { ?> <h1>Cabecera sin echo</h1> <?php } $p = "cadena"; $n = 5.5; $b = false; echo $p; $p = 74; echo $p; $tabla = array(1, 2, 3, 4, 5, 6, 7, 8, 9); $tabla2 = [1, 2, 3, 4]; $tabla3 = ['ana' => 1, "juan" => 3, "rosa" => 5]; shuffle($tabla); for ($i = 0; $i < count($tabla); $i++) { echo $tabla[$i] . "<br/>"; } sort($tabla); foreach ($tabla as $elemento) { echo $elemento . "<br/>"; } foreach ($tabla3 as $clave => $valor) { echo $clave . "--->" . $valor . "<br/>"; } echo nombredelafuncion(4, 4); echo "##" . levenshtein("Barcelona", "Bracelona"); cabecera("Ola k ase???"); echo strrev("Ola k ase???"); function nombredelafuncion($parametro1, $parametro2) { return $parametro1 + $parametro2; } function cabecera($texto) { ?> <h1><?= $texto ?></h1> <?php } $server = "localhost"; $user = "root"; $password = ""; $db = "tienda"; try { $conn = new PDO("mysql:host=$server;dbname=$db", $user, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $conn->query("SET NAMES 'utf8';"); } catch (PDOException $e) { echo "Connection failed: " . $e->getMessage(); } //Inserta un producto $sql = "insert into productos (nombre,precio) values (:nombre,:precio)"; $st = $conn->prepare($sql); $st->execute(array( ':nombre' => 'Tuerca', ':precio' => 10 )); echo "Filas afectadas: " . $st->rowCount() . "<br/>"; echo "Id producto: " . $conn->lastInsertId(); //Borra un producto $sql = "delete from productos where idproductos=:idproductos"; $st = $conn->prepare($sql); $st->execute(array( ':idproductos' => 11 )); echo "Filas afectadas: " . $st->rowCount() . "<br/>"; //Editar un producto $sql = "update productos set nombre=:nombre, precio=:precio where idproductos=:idproductos"; $st = $conn->prepare($sql); $st->execute(array( ':idproductos' => 14, ':nombre' => 'arandela', ':precio' => 100 )); echo "Filas afectadas: " . $st->rowCount() . "<br/>"; $sql = "insert into productos (nombre,precio) values (:n,:p)"; $st = $conn->prepare($sql); for ($i = 0; $i < 10; $i++) $st->execute(array( ':n' => 'producto' . $i, ':p' => $i * 3 )); $sql="select * from productos"; $st=$conn->prepare($sql); $st->execute(); while ($row=$st->fetch()){ echo $row['nombre']."<br/>"; } echo "<hr/>"; $st->execute(); $filas=$st->fetchAll(); foreach($filas as $fila_individual){ echo $fila_individual['nombre']."<br/>"; } ?>
Administración productos
SQL ejercicio tienda
CREATE TABLE `tienda`.`productos` ( `idproductos` INT NOT NULL AUTO_INCREMENT, `nombre` VARCHAR(50) NULL, `precio` DECIMAL(5,2) NULL, `descripcion` VARCHAR(400) NULL, PRIMARY KEY (`idproductos`)); CREATE TABLE `tienda`.`clientes` ( `idclientes` INT NOT NULL AUTO_INCREMENT, `mail` VARCHAR(100) NULL, `password` CHAR(32) NULL, `direccion` VARCHAR(200) NULL, `cpostal` CHAR(5) NULL, `ciudad` VARCHAR(50) NULL, PRIMARY KEY (`idclientes`)); CREATE TABLE `tienda`.`pedidos` ( `idpedidos` INT NOT NULL AUTO_INCREMENT, `idclientes` INT NULL, `fecha` DATETIME NULL, `importe` DECIMAL(6,2) NULL, `iva` DECIMAL(2,2) NULL, PRIMARY KEY (`idpedidos`)); CREATE TABLE `tienda`.`pedidos_productos` ( `idpedidos_productos` INT NOT NULL AUTO_INCREMENT, `idpedidos` INT NULL, `idproductos` INT NULL, `precio` DECIMAL(5,2) NULL, `cantidad` INT NULL,
PRIMARY KEY (`idpedidos_productos`)); ALTER TABLE `tienda`.`pedidos_productos` ADD INDEX `fk_productos_idx` (`idproductos` ASC); ALTER TABLE `tienda`.`pedidos_productos` ADD CONSTRAINT `fk_productos` FOREIGN KEY (`idproductos`) REFERENCES `tienda`.`productos` (`idproductos`) ON DELETE RESTRICT ON UPDATE NO ACTION; ALTER TABLE `tienda`.`pedidos_productos` ADD INDEX `fk_pedidos_idx` (`idpedidos` ASC); ALTER TABLE `tienda`.`pedidos_productos` ADD CONSTRAINT `fk_pedidos` FOREIGN KEY (`idpedidos`) REFERENCES `tienda`.`pedidos` (`idpedidos`) ON DELETE RESTRICT ON UPDATE NO ACTION; ALTER TABLE `tienda`.`pedidos` ADD INDEX `fk_clientes_idx` (`idclientes` ASC); ALTER TABLE `tienda`.`pedidos` ADD CONSTRAINT `fk_clientes` FOREIGN KEY (`idclientes`) REFERENCES `tienda`.`clientes` (`idclientes`) ON DELETE RESTRICT ON UPDATE NO ACTION;