/*
* * 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;