Как я могу сделать аргумент if / else со следующим. Я хотел бы определить переменную $ condition как пересечение таблицы A и таблицы B, и в конечном итоге, когда это условие истинно, затем выполните некоторый код.
Вот PHP, который у меня есть (я пытаюсь сопоставить table1.field1 и table2.field1 и где true, тогда я добавлю класс CSS в <tr>
),
$result = $dbh->query("SELECT field1, field2, field3, field4 FROM table1 ORDER BY field1 DESC"); $result->setFetchMode(PDO::FETCH_ASSOC); $match = $dbh->query("SELECT table1.field1 FROM table1 INNER JOIN table2 WHERE table2.field1 = table1.field1"); $condition = **???????**
Кроме того, есть ли способ упростить этот код? Я чувствую себя слишком долго. У Марка Твена есть поговорка … «Мне жаль, что это письмо слишком длинное, у меня не было времени, чтобы сделать его короче». Хотел бы я сказать, что это актуально здесь, но я был на этом какое-то время! Любая помощь будет принята с благодарностью.
Как насчет чего-то вроде (в вашем первом и тогда единственном запросе)
$result = $dbh->query(" SELECT t1.field1, t1.field2, t1.field3, t1.field4, IF(t2.field1 IS NULL, 0, 1) `match` FROM table1 t1 LEFT JOIN table2 t2 ON t2.field1 = t1.field1 ");
(вы должны поставить backticks ( `
) вокруг match
, так как это ключевое слово MySQL)
и в вашей петле
<tr class="<?=$v["match"] ? "match" : ""?>">