<?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;
Ejercicios PDO: importar, exportar, select
Mysqli vs. PDO
Mantenimiento de categorías con PDO
Ejemplo mantenimiento con mysqli orientado a objetos
Mostrar imágenes carpeta upload
chdir('upload');
if ($gestor = opendir('.')) {
while (false !== ($entrada = readdir($gestor))) {
if ($entrada != "." && $entrada != "..") {
$info= pathinfo($entrada);
if ($info['extension']=="jpg" || $info['extension']=="png"){
echo '<img width="50" height="50" src="upload/'.$entrada.'">';
}
}
}
closedir($gestor);
}
Ficheros array
<form enctype=»multipart/form-data» action=»archivo.php» method=»POST»>
<!– MAX_FILE_SIZE debe preceder al campo de entrada del fichero –>
<input type=»hidden» name=»MAX_FILE_SIZE» value=»300000″ />
<!– El nombre del elemento de entrada determina el nombre en el array $_FILES –>
Foto: <input name=»foto» type=»file» /><br/>
Curriculum: <input name=»curri» type=»file» /><br/>
Informes: <input name=»informe[]» type=»file» /><br/>
<input name=»informe[]» type=»file» /><br/>
<input name=»informe[]» type=»file» /><br/>
<input type=»submit» value=»Enviar fichero» /></form>
$dir_subida = 'upload/';
$foto = $dir_subida . basename($_FILES['foto']['name']);
$curri = $dir_subida . basename($_FILES['curri']['name']);
if (move_uploaded_file($_FILES['foto']['tmp_name'], $foto)) {
echo "Foto subida con éxito.\n";
} else {
echo "¡Posible ataque de subida de ficheros!\n";
}
if (move_uploaded_file($_FILES['curri']['tmp_name'], $curri)) {
echo "Curriculum subido con éxito.\n";
} else {
echo "¡Posible ataque de subida de ficheros!\n";
}
for ($i=0;$i<count($_FILES['informe']['name']);$i++){
if (move_uploaded_file($_FILES['informe']['tmp_name'][$i],
$dir_subida . basename($_FILES['informe']['name'][$i]))) {
echo "Informe $i subido con éxito.\n";
} else {
echo "¡Posible ataque de subida de ficheros!\n";
}
}
Subir archivos PHP
Para subir un archivo necesitamos primero indicar en el formulario el typo de datos (multipart/form-data) y, opcionalmente, el máximo tamaño:
<!-- El tipo de codificación de datos, enctype, DEBE especificarse como sigue -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
<!-- MAX_FILE_SIZE debe preceder al campo de entrada del fichero -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- El nombre del elemento de entrada determina el nombre en el array $_FILES -->
Enviar este fichero: <input name="fichero_usuario" type="file" />
<input type="submit" value="Enviar fichero" />
</form>
Después, en el PHP, debemos recoger el archivo y moverlo a su ubicación definitiva:
$dir_subida = '/var/www/uploads/';
$fichero_subido = $dir_subida . basename($_FILES['fichero_usuario']['name']);
if (move_uploaded_file($_FILES['fichero_usuario']['tmp_name'], $fichero_subido)) {
echo "El fichero es válido y se subió con éxito.\n";
} else {
echo "¡Posible ataque de subida de ficheros!\n";
}