$product_list = [30, 32, 38];
$query = " `productId` in (".join(', ', array_map(function($item){return int $item;}, $product_list)).")";
$sql = "SELECT * FROM `products` WHERE ".$query;
// Должен получиться запрос:
// SELECT * FROM `products` WHERE `productId` in (30, 32, 38)
// array_map тут нужен для принудительного перевода всех значений в числовой вид, обеспечив тем самым экранирование.
$query = $db->query($sql);
$products_data = $query->fetchAll(\PDO::FETCH_ASSOC);
$product_list = [30, 32, 38];
$in_params = [];
for($i = 0; $i < count($product_list), $i++)
$in_params[':productId'.$i] = $product_list[$i];
// получили массив: $in_params = [':productId0' => 30, ':productId1' => 32, ':productId0' => 38];
$placeholder_string = join(', ', array_keys($in_params));
// получили строку $placeholder_string = ":productId0, :productId1, :productId2";
$sql = "SELECT * FROM `products` WHERE `productId` in (".$placeholder_string.")";
// Должен получиться запрос:
// SELECT * FROM `products` WHERE `productId` in (:productId0, :productId1, :productId2)
$query = $db->prepare($sql);
$query->execute($in_params); // in_params в точности в таком формате, который нужен для связки параметров productId
$products_data = $query->fetchAll(\PDO::FETCH_ASSOC);
SELECT distinct P.date
FROM Query Q
JOIN Position P ON Q.id = P.query_id
where P.Date between _ and _
SELECT Q.Query,
QP1.Cnt,
QP2.Cnt,
......
FROM Query Q JOIN Position P ON Q.id = P.query_id
left join (select Q1.Query, P1.Date, count(*) as Cnt from Query Q1 JOIN Position P1 ON Q1.id = P1.query_id group by Q1.Query, P1.Date) QP1 on QP1.Query = Q.uery and P1.Date = P.Date
left join (select Q2.Query, P2.Date, count(*) as Cnt from Query Q2 JOIN Position P2 ON Q2.id = P2.query_id group by Q2.Query, P2.Date) QP2 on QP2.Query = Q.Query and P1.Date = P.Date
....
where P.Date between _ and _
and (QP1.Cnt > 0 or QP1.Query is null)
and (QP2.Cnt > 0 or QP2.Query is null)
....
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.html
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.html\htmlfile
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.html\htmlfile\ShellNew
FileName="C:\Templates\initial.html"
$content = hex2bin(str_replace(" ","", "25 50 44 46 2D 31 2E 35 0D 0A 25 B5 B5 B5 B5 0D 0A 31 20 30 20 6F 62 6A 0D 0A 3C 3C 2F 54 79 70 65 2F 43 61 74 61 6C 6F 67 2F 50 61 67 65 73 20 32 20 30 20 52 2F 4C 61 6E 67 28 72 75 2D 52 55 29 20 2F 53 74 72 75 63 74 54 72 65 65 52 6F 6F 74 20 32 32 20 30 20 52 2F 4D 61 72 6B 49 6E 66 6F 3C 3C 2F 4D 61 72 6B 65 64 20 74 72 75 65 3E 3E 3E 3E 0D 0A 65 6E 64 6F 62 6A 0D 0A 32 20 30 20 6F 62 6A 0D 0A 3C 3C 2F 54 79 70 65 2F 50 61 67 65 73 2F 43 6F 75 6E 74 20 31 2F 4B 69 64 73 5B 20 33 20 30 20 52 5D 20 3E 3E 0D 0A 65 6E 64 6F 62 6A 0D 0A 33 20 30 20 6F 62 6A 0D 0A 3C 3C 2F 54 79 70 65 2F 50 61 67 65 2F 50 61 72 65 6E 74 20 32 20 30 20 52 2F 52 65 73 6F 75 72 63 65 73 3C 3C 2F 45 78 74 47 53 74 61 74 65 3C 3C 2F 47 53 35 20 35 20 30 20 52 2F 47 53 36 20 36 20"));
// если записать в каталог сервера, то так:
file_put_contents("file.pdf", $content);
// если отдать контент браузеру, то так:
header("Content-type:application/pdf");
header("Content-Disposition:inline;filename='file.pdf");
echo $content;
$result =
[
1 => // department_id
[
1 /* 000i индекс */ => [1 /*индекс вида предмета*/ => '1_1_0001', 2 => '1_2_0001', 3 => '1_3_0001' /* непосредственно данные */],
2 /* 000i индекс */ => [1 /*индекс вида предмета*/ => '1_1_0002', 2 => '1_2_0002', 3 => '1_3_0002' /* непосредственно данные */],
3 /* 000i индекс */ => [1 /*индекс вида предмета*/ => '1_1_0003', 3 => '1_3_0003' /* непосредственно данные */],
...
],
2 =>
...
];
select t.department_id,
t1.item as type_1,
t2.item as type_2,
...
from t
left join (select t.department_id, t.item from t where t.type_id = 1) t1 on t1.department_id = t.department_id
left join (select t.department_id, t.item from t where t.type_id = 2) t2 on t2.department_id = t.department_id
...
where 1 = 1
and (SUBSTRING_INDEX(t.item, '_', -1) + 0 = SUBSTRING_INDEX(t1.item, '_', -1) + 0 or t1.item is null)
and (SUBSTRING_INDEX(t.item, '_', -1) + 0 = SUBSTRING_INDEX(t2.item, '_', -1) + 0 or t2.item is null)
...
-- тут нужно получить равенство всех субиндексов 0000i от t.item сравнить со всеми tn.item
order by t.department_id, SUBSTRING_INDEX(t.item, '_', -1) + 0
систему счисления без приближений в таких числах, как 2,1;3,4;45,9
6 ГБ оперативки это страшно ради точных вычислений
CREATE TABLE Orders (
...
Product_Id int,
FOREIGN KEY (Product_Id) REFERENCES Products(Product_Id) -- внешний ключ к продуктам
...
-- Таблица "Позиция продукта в заказе"
CREATE TABLE Order_Positions (
position_id INT PRIMARY KEY,
order_id INT,
product_id INT,
FOREIGN KEY (Product_Id) REFERENCES Products(Product_Id), -- внешний ключ к продуктам
FOREIGN KEY (order_id) REFERENCES Orders(order_id) -- внешний ключ к Заказам
);
В UEFI BIOS не пускает никакими способами вплоть до подключения сторонней клавиатуры