G. api / producto-vista-index.php

1
<?php
2
3
require_once __DIR__ . "/../libservidorphp/manejaErrores.php";
4
require_once __DIR__ . "/../libservidorphp/devuelveJson.php";
5
require_once __DIR__ . "/Bd.php";
6
7
$bd = Bd::conexion();
8
$stmt = $bd->query("SELECT * FROM PRODUCTO ORDER BY PRD_NOMBRE");
9
$lista = $stmt->fetchAll(PDO::FETCH_ASSOC);
10
11
$render = "";
12
foreach ($lista as $modelo) {
13
 $prodId = $modelo["PRD_ID"];
14
 $archId = $modelo["PRD_ARCH_ID"] === null ? "" : $modelo["PRD_ARCH_ID"];
15
 $query = htmlentities(http_build_query(["id" => $prodId]));
16
 $urlModifica = "modifica.html?$query";
17
 $queryArch = htmlentities(http_build_query(["id" => $archId]));
18
 $alt = $archId === "" ? "Sin imagen" : "Imagen del producto";
19
 $src = $archId === "" ? "" : "api/archivo.php?$queryArch";
20
 $prodNombre = htmlentities($modelo["PRD_NOMBRE"]);
21
 // Los bytes de las imágenes se descargan con "archivo.php"; no desde aquí.
22
 $render .=
23
  "<div style='display: flex; flex-direction: row-reverse;
24
      align-items: center; gap: 0.5rem'>
25
     <dt style='flex: 1 1 0'>
26
      <a href='$urlModifica'>$prodNombre</a>
27
     </dt>
28
     <dd style='flex: 1 1 0; margin: 0'>
29
      <a href='$urlModifica'><img
30
        style='width: 100%; aspect-ratio:16/9; object-fit: contain'
31
        alt=$alt src='$src'></a>
32
     </dd>
33
    </div>";
34
}
35
36
devuelveJson(["lista" => ["innerHTML" => $render]]);
37
skip_previous skip_next