<?php
function get_categoies($pdo)
{
$stmt = $pdo->prepare("SELECT * FROM `categories`");
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
function get_prices_by_category($pdo, $category_id)
{
$stmt = $pdo->prepare("SELECT * FROM `prices` WHERE category_id = ?");
$stmt->execute([$category_id]);
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
$categories = get_categoies($pdo);
foreach ($categories as $category) {
echo '<h3>'.$category['title'].'</h3>
<div class="cblock">';
$prices = get_prices_by_category($pdo, $category['id']);
foreach ($prices as $price) {
echo '<div class="pricelist-row">
<div class="service">' . $price["title"] . '</div>
<div class="price">от ' . $price["price"] . ' руб/' . $price["type"] . '</div>
</div>';
}
echo '</div>';
}
SELECT user_id, count(distinct created)
FROM orders
WHERE created > DATE_SUB(CURRENT_DATE, INTERVAL 30 DAY) -- get last 30 day orders
GROUP BY user_id
HAVING count(distinct created) = 30 -- check user have orders in 30 different days
;
<?php
//Есть массив
$arr=['a','d','x','d','d','d','a','z','z','f','f','f','f','b','c','v'];
echo '<div>' . PHP_EOL;
foreach ($arr as $i=>$el) {
if ($i > 0 && $el <> $arr[$i - 1] ) echo '</dv><div>' . PHP_EOL;
echo $el . PHP_EOL;
}
echo '</div>';
select count(id) users_with_first_day_order
from users
where exists (
select 1 from orders where orders.user_id = users.id and orders.order_date = users.registration_date
);
select
*
from
orders
where
exists (
select
1
from
order_product
where
order_id = orders.id
and importance = 0
);
SELECT * FROM texttable
ORDER BY name REGEXP '^[А-Яа-я]' DESC, name;
SELECT Запись_на_прием.ID_Записи, Водитель.ФИО Водитель, Врач.ФИО Врач
FROM Запись_на_прием
JOIN Пользователь AS Водитель ON Водитель.ID_Пользователя = Запись_на_прием.ID_Водитель
JOIN Пользователь AS Врач ON Врач.ID_Пользователя = Запись_на_прием.ID_Врач
;
WITH p AS (
SELECT
payments.*,
extract(EPOCH from (now() - updated_at::timestamp) / 60) AS minutes_passed
FROM public.payments
) SELECT
p.*,
CASE
WHEN 60 - minutes_passed > 0
AND 60 - minutes_passed <= 15 THEN 'expires'
WHEN 60 - minutes_passed > 15 THEN 'success'
ELSE 'expired'
END
AS exp_status
FROM p;
$res = array_filter(
$arr,
fn($el)=>!in_array($el["uniq_id"], $filter)
);
CREATE TABLE REQUESTS (
ID INT,
id_request INT NOT NULL,
time_request TIME WITH TIME ZONE NOT NULL
);
<?php
$product = 'sweater';
$query = "select distinct color from products where product = ?;";
// get DB version using PDO
$stmt = $pdo->prepare($query);
$stmt->execute([$product]);
$colors = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($colors);
SELECT
task.id,
task.dc,
task.provider,
task.type,
task.url,
task.cost,
task.cost_bot,
task.last_start_msec,
task.url_id,
task.remains,
task.cat
FROM
Task task
WHERE
task.status = 'active'
AND task.type = 'follow_profile'
AND task.provider = 'insta'
AND task.cat = 3
AND NOT EXISTS(
SELECT 1 FROM TaskFlow flow
WHERE
flow.url_id = task.url_id
AND flow.executor_acc_id = $acc
);
with d as (
select
date,
open_close,
lead(date) over (order by date asc) next_date,
lead(open_close) over (order by date asc) next_open_close
from moex_fin m
) select * from d
where open_close BETWEEN 3.15 * 0.985 AND 3.15 * 1.005
;