0

编辑:奇怪我把每个变量都转储了,它们都是 bool(false)

我正在尝试进行此查询。但是当我点击搜索按钮时,什么都没有出现。谁能指引我正确的方向?提前致谢。

                   $STH = $DBH->query("SELECT * FROM artikel
                                LEFT JOIN barcode
                                ON artikel.barcode_id = barcode.barcode_id
                                LEFT JOIN debiteur
                                ON artikel.debiteur_id = debiteur.debiteur_id 
                                WHERE debiteur.debiteur_naam LIKE '%$formulier%'
                                AND artikel.artikel_leverancier LIKE '%$leverancier%'
                                AND artikel.artikel_leverancier_code LIKE '%$artikelleverancier%'
                                AND artikel.artikel_code LIKE '%$artikelexact%'
                                AND artikel.artikel_omschrijving LIKE '%$artikelomschrijving%'
                                ORDER BY '$orderby' ASC"); 
4

2 回答 2

0

假设您对满足至少一个 LIKE 条件的项目感兴趣,您需要将ANDs替换为ORs

  $STH = $DBH->query("SELECT * FROM artikel
                    LEFT JOIN barcode
                    ON artikel.barcode_id = barcode.barcode_id
                    LEFT JOIN debiteur
                    ON artikel.debiteur_id = debiteur.debiteur_id 
                    WHERE debiteur.debiteur_naam LIKE '%$formulier%'
                    OR artikel.artikel_leverancier LIKE '%$leverancier%'
                    OR artikel.artikel_leverancier_code LIKE '%$artikelleverancier%'
                    OR artikel.artikel_code LIKE '%$artikelexact%'
                    OR artikel.artikel_omschrijving LIKE '%$artikelomschrijving%'
                    ORDER BY '$orderby' ASC"); 
于 2013-09-09T13:28:08.703 回答
0

听起来您必须测试空参数。这是 SQL 中的一种方法:

WHERE ('$formulier' <> '' and debiteur.debiteur_naam LIKE '%$formulier%') or
      ('$leverancier' <> '' and artikel.artikel_leverancier LIKE '%$leverancier%') or
      ('$artikelleverancier' <> '' and artikel.artikel_leverancier_code LIKE '%$artikelleverancier%') or
      ('$artikelexact' <> '' and artikel.artikel_code LIKE '%$artikelexact%') or
      ('artikelomschrijving' <> '' and artikel.artikel_omschrijving LIKE '%$artikelomschrijving%')

或者,当变量不为空时,您可以逐个子句构建查询子句。

于 2013-09-09T13:39:48.307 回答