编辑:奇怪我将所有变量都归结为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");
答案 0 :(得分:0)
假设您对满足至少一个LIKE条件的项目感兴趣,则需要将AND
替换为OR
s
$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");
答案 1 :(得分: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%')
或者,当变量不为空时,可以构建查询子句。