Ejercicio entidad relación

Una empresa vende productos a varios clientes. Se necesita conocer los datos personales de los clientes (nombre, apellidos, dni, dirección y fecha de nacimiento). Cada producto tiene un nombre y un código, así como un precio unitario. Un cliente puede comprar varios productos a la empresa, y un mismo producto puede ser comprado por
varios clientes.
Los productos son suministrados por diferentes proveedores. Se debe tener en cuenta que un producto sólo puede ser suministrado por un proveedor, y que un proveedor puede suministrar diferentes productos. De cada proveedor se desea conocer el NIF, nombre y dirección.

Se desea diseñar la base de datos de un Instituto. En la base de datos se desea guardar
los datos de los profesores del Instituto (DNI, nombre, dirección y teléfono). Los
profesores imparten módulos, y cada módulo tiene un código y un nombre. Cada alumno
está matriculado en uno o varios módulos. De cada alumno se desea guardar el nº de
expediente, nombre, apellidos y fecha de nacimiento. Los profesores pueden impartir
varios módulos, pero un módulo sólo puede ser impartido por un profesor.

Se desea diseñar una base de datos para almacenar y gestionar la información
empleada por una empresa dedicada a la venta de automóviles, teniendo en cuenta los
siguientes aspectos:
La empresa dispone de una serie de coches para su venta. Se necesita conocer la
matrícula, marca y modelo, el color y el precio de venta de cada coche.
Los datos que interesa conocer de cada cliente son el NIF, nombre, dirección, ciudad y
número de teléfono: además, los clientes se diferencian por un código interno de la
empresa que se incrementa automáticamente cuando un cliente se da de alta en ella. Un
cliente puede comprar tantos coches como desee a la empresa. Un coche determinado
solo puede ser comprado por un único cliente.
El concesionario también se encarga de llevar a cabo las revisiones que se realizan a
cada coche. Cada revisión tiene asociado un código que se incrementa automáticamente
por cada revisión que se haga. De cada revisión se desea saber si se ha hecho cambio de
filtro, si se ha hecho cambio de aceite, si se ha hecho cambio de frenos u otros. Los
coches pueden pasar varias revisiones en el concesionario

Soluciones examen


<?php
//1 Muestra 56
//2
$colores=["Rojo","naranja","amarillo","verde","cian","azul","magenta"];

//3
$res=1;
for($i=1;$i<=12;$i++){
$res*=$i;
}
echo $res;

//4

function inicioFin($cadena){
return substr($cadena,0,1)==substr($cadena,-1);
}
//5
function sumaArray($array){
$suma=0;
foreach($array as $v){
$suma+=$v;
}
return $suma;
}
function sumaArrayPro($array){
return array_sum($array);
}
//6
function invertirCad($array){
$res=[];
foreach($array as $v){
$res[]= strrev($v);
}
return $res;
}

//7
function arrayAleatorio($tam,$min,$max){
$res=[];
for($i=0;$i<$tam;$i++){
$res[]=mt_rand($min,$max);
}
return $res;
}

//8
function finde(){
return date("w")==0 || date("w")==6;
}

//9
function quitar($cadena,$letras){
$cadena= utf8_encode($cadena);
for($i=0;$i<strlen($letras);$i++){
$cadena=
str_replace(substr($letras,$i,1), "", $cadena);
}
return utf8_decode($cadena);
}
function contarConsonantes($cadena){
$cadena= strtolower($cadena);
$c=quitar($cadena,"bcdfghjklmnñpqrstvwxyz");
return strlen($cadena)-strlen($c);
}

function masConsonantes($a,$b){
if (contarConsonantes($a)> contarConsonantes($b)){
return $a;
} else {
return $b;
}
}

Soluciones ejercicios

<?php

//Ejercicio 15
function medio($a,$b,$c){
   $tabla=[$a,$b,$c];
   sort($tabla);
   return $tabla[1];
}
function medio2($a,$b,$c){
    if (($a>=$b && $a<=$c) || 
        ($a>=$c && $a<=$b)){
        return $a;
    }
     if (($b>=$a && $b<=$c) || 
        ($b>=$c && $b<=$a)){
        return $b;
    }
     if (($c>=$b && $c<=$a) || 
        ($c>=$a && $c<=$b)){
        return $c;
    }
}
echo medio2(1,1,3);
echo "<hr>";
echo medio2(3,1,3);
echo "<hr>";
echo medio2(7,1,3);
echo "<hr>";
echo medio2(6,6,3);
echo "<hr>";
echo medio2(1,14,3);
echo "<hr>";
function inicioFin($cadena){
    if(strlen($cadena)<4){
        return $cadena;
    } else {
        $inicio=substr($cadena,0,2);
        $fin=substr($cadena,-2);
        return $inicio.$fin;
    }
}
echo inicioFin("patata");

function masCorta($array){
    $corta=$array[0];
    foreach($array as $v){
        if(strlen($v)<strlen($corta)){
            $corta=$v;
        }
    }
    return $corta;
}

echo masCorta(['hola','que','tal']);

function mezcla($a,$b){
    $c=[];
    foreach($a as $v){
        $c[]=$v;
    }
    foreach($b as $v){
        $c[]=$v;
    }
    return $c;
}
function mezcla2($a,$b){
    return array_merge($a,$b);
}
function quitar($cadena,$letras){
    $cadena= utf8_encode($cadena);
    for($i=0;$i<strlen($letras);$i++){
        $cadena= 
        str_replace(substr($letras,$i,1), "", $cadena);
    }
    return utf8_decode($cadena);
}
function contarConsonantes($cadena){
    $cadena= strtolower($cadena);
    $c=quitar($cadena,"bcdfghjklmnñpqrstvwxyz");
    return strlen($cadena)-strlen($c);
}
//Asumiendo palabra normal
function contarConsonatesNormal($palabra){
    $cont=0;
    for($i=0;$i<strlen($palabra);$i++){
        $letra=substr($palabra,$i,1);
        if ($letra!="a" && $letra!="e"&& $letra!="i" 
            && $letra!="o" && $letra!="u"  ){
            $cont++;
        }
    }
    return $cont++;
}
echo "<hr>";
echo contarConsonantes("cacaípéíü    ..&%/&%/&hudfete");
echo contarConsonatesNormal("cacahuete");


function masConsonantes($cadena){
    $palabras=explode(" ",$cadena);
    $almacen="";
    foreach($palabras as $palabra){
        if(contarConsonantes($palabra)>
                contarConsonantes($almacen)){
            $almacen=$palabra;
        }
    }
    return $almacen;
}
echo "<hr>";
echo masConsonantes("En un lugar de la mancha");
echo "<hr>";
function malditosLunes(){
    $lunes=[];
    $inicio= mktime(0,0,0,1,1,2019);
    for($i=1;$i<=365;$i++){
        $fecha= mktime(0,0,0,1,$i,2019);
      /*  echo date("d-m-Y",$fecha)."<br>";
        echo date("d-m-Y",$inicio)."<br>";*/
        //Otra manera
        $inicio= strtotime("+1day",$inicio);
        if(date("w",$fecha)==1){
            $lunes[]=date("d-m-Y",$fecha);
        }
    }
    return $lunes;
}
print_r(malditosLunes());

Funciones archivos y ejemplos

<?php

$f = fopen("datos.txt", "r");
//recorro el archivo
$lineas=[];
while (!feof($f)) {
    $lineas[] = fgets($f);  
}
fclose($f);
print_r($lineas);
//Abre, lee, lo pasa a array y lo cierra
$otramanera=file("datos.txt");
print_r($otramanera);
//Abre, lee, lo pasa a cadena y lo cierra
$cadena= file_get_contents("datos.txt");
echo $cadena;

$cadena= file_get_contents("https://www.pampling.com/");
echo str_ireplace("camiseta", "cacahuete", $cadena);

$f=fopen("log.txt","a");

fwrite($f,"Log de números\r\n");

for($i=1;$i<=10;$i++){
    fwrite($f,$i."\r\n");
}

fclose($f);

Ejercicio apuntes

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        $carpeta = "archivos/";
        if (isset($_FILES['fichero'])) {
            if (substr($_FILES['fichero']['name'], -4) == ".txt") {
                move_uploaded_file($_FILES['fichero']['tmp_name'], $carpeta . $_FILES['fichero']['name']);
                echo "Archivo subido";
            } else {
                echo "El archivo no es .txt<br>";
            }
        }
        $nombre = filter_input(INPUT_POST, "nombre");
        if (!empty($nombre) && !file_exists($carpeta.$nombre)){
            mkdir($carpeta.$nombre);
        }
        $lista= scandir($carpeta);
        array_shift($lista);
        array_shift($lista);
        $archivos="";
        $carpetas="";
        foreach($lista as $v){
            if (is_dir($carpeta.$v)){
                $carpetas.=$v."<br>";
            } else {
                $archivos.=$v."<br>";
            }
        }
        ?>
        <form method="post" enctype="multipart/form-data">
            Escoge archivo: <input type="file" name="fichero">
            <input type="submit">
        </form>
        <form method="post">
            Introduzca la carpeta: 
            <input type="text" name="nombre">
            <input type="submit">
        </form>
        <table>
            <tr><td>Archivos</td><td>Carpetas</td></tr>
            <tr><td>
                <?=$archivos?>
                </td><td>
                 <?=$carpetas?>
                </td></tr>
        </table>
    </body>
</html>

Ejercicios repaso

Variables

1. Crear dos variables de tipo cadena y mostrarlas concatenadas
2. Crear una variable num que valga 10, restarle 5, multiplicarla por 7, incrementar uno y mostrar el resultado
3. ¿Que nos muestra el siguiente código?

 $a=5;
$b=6; 
echo $b.$a;

Estructuras de control

4. Si tengo una variable $sueldo quiero un código que me imprima por pantalla “ILEGAL” si es menor que el SMI (900€)
5. Tengo las variables $usuario y $password. Poner un código que me imprima “Usuario autorizado” si el usuario es “juan” y el password es “1234”
6. Lo mismo pero que también esté autorizado el usuario “eva” y password “7890” (es decir, que estén autorizados los dos)
7. Crear una página web que nos pida dos números y nos diga si la diferencia entre los dos es mayor que diez o no
Ejemplo: si pongo 4 y 9 me dirá que no. Si pongo 4 y 40 me dirá que sí.
8. Crear una página que me pida un día de la semana y me diga si es festivo (en el caso de sábado y domingo) o no (el resto)

Bucles

9. Crear una página que nos pida un número y nos muestre la tabla de multiplicar de ese número
10. Crear una página que nos muestre la suma de los números entre 1 y 100
11. Crear una página que nos muestre una lista (ul) con los primeros 10 cuadrados (1,4,9,16,…)
12. Crear una página que nos muestre una tabla de 5×5 y que cada celda tenga un valor consecutivo

Funciones

13. Crear una función que le pasemos un nombre y un apellido y nos devuelva el valor concatenado.
14. Crear una función que le pasemos un nombre y nos devuelva “Hola ” y el nombre
15. Crear una función a la que pasemos tres números y nos devuelva el que está en la mitad (ni el más alto ni el más bajo). Si hay algún número que sea igual a otro que nos devuelva ese número.
16. Crear una función a la que le pasemos dos números y nos devuelva true si los dos son pares o impares y false si uno es par y el otro es impar.

Funciones de cadena

17. Crear una función que nos diga cuantas consonantes tiene una palabra.
18. Crear una función a la que le pasemos dos palabras y nos diga cual es la más larga
19. Crear una función a la que le pasemos una frase y nos sustituya la ‘a’ por ‘4’ y la ‘e’ por ‘3’
20. Crear una función a la que le pasemos una cadena y nos devuelva una cadena formada por las dos primeras letras y por las dos últimas letras. Si la longitud de la cadena es menor que cuatro devolver la misma cadena

Funciones de array

21. Crear una función a la que le pasemos un número y nos devuelva un array con los números desde el 1 al número que me pasen.Ejemplo, si le paso un 5 me devuelve [1,2,3,4,5]
22. Crear una función a la que le pasemos un array con cadenas y nos devuelva la cadena más corta
23. Crear una función a la que le pasemos dos arrays y nos devuelva un array con los dos mezclados
24. Crear una función a la que le pasemos una cadena y nos devuelva la palabra con más consonantes

Funciones de fecha

25. Crear una función vencimiento que le pasemos un número de días y nos devuelva la fecha que resultará de sumarle a hoy el número de días que nos pasan.
26. Crear una función que nos devuelva un array con todas las fechas de este año que caen en lunes
27. Crear una función que le pasemos un año y nos diga si es bisiesto o no
28. Crear una función a la que le pasemos un año y un mes y nos devuelva que día de la semana empieza (en texto)