0

次のように if/else を引数にするにはどうすればよいですか。変数 $condition をテーブル A とテーブル B の共通部分として定義し、最終的にこの条件が true の場合にコードを実行したいと思います。

これが私が持っている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 = **???????**

また、このコードを単純化する方法はありますか? 長すぎる気がします。マーク・トウェインの格言「この手紙は長すぎてごめんなさい。短くする時間がありませんでした。」これがここで関連していると言えたらいいのですが、私はしばらくこれに取り組んできました! どんな助けでも大歓迎です。

4

1 に答える 1

4

次のようなものはどうですか(最初で唯一のクエリで)

$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
");

(これは MySQL のキーワードであるため、バックティック ( `) を の周りに配置する必要があります) およびループ内でmatch

<tr class="<?=$v["match"] ? "match" : ""?>">
于 2013-01-02T00:29:25.820 に答える