$dir = __DIR__ . DIRECTORY_SEPARATOR;
$linksKey = $links ? '-k' : '';
$filesKey = $files ? '-p' : '';
$command = "C:\\wget.exe -P {$dir} r {$depth} {$linksKey} -l '. {$depth} {$filesKey} -E -nc 2>&1";
const CALL_COST = 20;
const DIST_COSTS = [
['range' => 0, 'cost' => 1],
['range' => 10, 'cost' => 1.5],
['range' => 20, 'cost' => 0.5], // 2 - 1.5
];
function distPrice($distance) {
$price = 0;
for ($i = 0; $i < count(DIST_COSTS) && $distance >= DIST_COSTS[$i]['range']; $i += 1) {
$price += ($distance - DIST_COSTS[$i]['range']) * DIST_COSTS[$i]['cost'];
}
return $price;
}
function routePrice($distFrom, $distTo) {
return CALL_COST + distPrice($distTo) - distPrice($distFrom);
}
print routePrice(0, 30) . "\n"; // 85
print routePrice(10, 28) . "\n"; // 69
WITH RECURSIVE `cte` (`id`, `parent_id`, `title`, `n`) AS (
SELECT `id`, `parent_id`, `title`, 0
FROM `table`
WHERE `id` = :categoryId
UNION
SELECT `t`.`id`, `t`.`parent_id`, `t`.`title`, `n`+1
FROM `cte`
JOIN `table` AS `t` ON `t`.`id` = `cte`.`parent_id`
)
SELECT `id`, `title`
FROM `cte`
ORDER BY `n` DESC
Остаётся только выбрать все строки из ответа и вывести их в цикле. $data = [[
"id" => 25,
"pid" => "0CjqYfx3NU1AghsPVoGFullXwl4umV",
"message" => "Одно лишь ё - это безумие!"
]];
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
/*
[
{
"id": 25,
"pid": "0CjqYfx3NU1AghsPVoGFullXwl4umV",
"message": "Одно лишь ё - это безумие!"
}
]
*/
Данный модуль устарел, начиная с версии PHP 5.5.0, и удалён в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL.https://www.php.net/manual/ru/function.mysql-conne...
Смысл двух разных вариантов для операторов "and" и "or" в том, что они работают с различными приоритетами (смотрите таблицу Приоритет выполнения операторов).
&&
- 15 строка, =
- 19 строка, and
- 23 строка.$bool = true and false;
=> ($bool = true) and false;
$bool = true && false;
=> $bool = (true && false);