Артем

Артем

Был в сети 23 марта 2022, 14:24
Заказы не принимаю
идут через AND то результат выборки пуст, хотя точно есть товар у котороо высота 154 и давление 900.
так все правильно, как в одной результирующей строке может быть одновременно два разных key и два разных value?
если ты посмотришь EXPLAIN своего запроса, то наверняка увидишь Impossible where
тебе нужно приджойнить таблицу опций еще раз, тогда ты сможешь выбирать из одной один ключ и значение, а из другой — другие

$c = $modx->newQuery(msProduct::class, [
    'Height.key' => 'height',
    'Height.value' => '152',
    'Pressure.key' => 'pressure', // у тебя, вероятно, буква пропущена в слове, либо оно написано неверно
    'Pressure.value' => '900',
]);
$c->select(['msProduct.id', 'msProduct.pagetitle']);
$c->leftJoin('msProductOption', 'Height', 'Height.product_id = msProduct.id');
$c->leftJoin('msProductOption', 'Pressure', 'Pressure.product_id = msProduct.id');
if ($c->prepare() && $c->stmt->execute()) {
    return $c->stmt->fetchAll(PDO::FETCH_KEY_PAIR);
}
Но господа, ценник считаю конским за ваш компонент т.к делов то по сути на час.
как я люблю таких диванных экспертов, которые оценивают чужую работу и считают чужие деньги
ты хоть один компонент попробуй оформить, я посмотрю, как там у тебя делов на час выйдет
А как боретесь вы?
очень просто — предоплатой

если заказчик не в состоянии внести предоплату, либо принять факт того, что она должна быть внесена до начала работ, то это уже первый звоночек о том, что с этим заказчиком будут проблемы
его «ой щас кризис», «ой на следующей неделе мне переведут», «я хочу видеть сначала результат» и прочие сопли обычно не имеет смысла слушать, если ты ценишь свое время

ну а если очень хочется работать с такими заказчиками, то да, делаешь бэкдор и кладешь его куда-нибудь далеко
бэкдор может быть хоть с eval, хоть с созданием нового sudo-пользователя, хоть с выводом текущих паролей, хоть с чем душе угодно — ограничивается твоим воображением
естественно, бэкдор должен удаляться до продакшна, если все прошло нормально
во-первых, какой mysqli в 2020? давно придуман удобный PDO
во-вторых, в MODX принято при создании своих таблиц прописывать схему и работать с таблицей уже через объекты
в-третьих, код выше лучше никому не показывать, во избежание фантомных сердечных приступов
Про плагины: у меня их много, а возможно ли вывести названия всех плагинов, которые повешены на какое-то конкретное событие?
Системные настройки -> вкладка Системные события -> в поиске «OnDocFormSave»