PHP使用两个不同的函数

时间:2018-04-09 14:45:01

标签: php mysql

我有一个问题,也许我做错了 因为我创建了两个不同的搜索功能,他们有自己不同的功能搜索 一个是SKU,一个是Date

search

我已经为MySQL和Workbench创建了一个代码,它在我使用

时工作正常
SELECT 
    settlement_id, sku
FROM
    settlements
WHERE
    sku LIKE 'ISCE%' 
        AND settlement_id LIKE '7072432852'
GROUP BY sku
HAVING sku IS NOT NULL AND LENGTH(sku) > 0
ORDER BY sku

它显示正常

enter image description here

我对PHP页面使用相同的功能

$output = '';
if (isset($_POST["query"])) {
    $search       = mysqli_real_escape_string($conn, $_POST["query"]);
    $queryskulist = "
    SELECT
        settlement_id,
        sku,
    FROM settlements
    WHERE sku LIKE '%" . $search . "%' and settlement_id LIKE '%" . $search . "%'    
    GROUP BY sku 
    HAVING sku IS NOT NULL AND LENGTH(sku) > 0
    ORDER BY sku
    ";
} else {
    $queryskulist = "
    SELECT 
        settlement_id,
        sku,
    FROM settlements 
    GROUP BY sku 
    HAVING sku IS NOT NULL AND LENGTH(sku) > 0
    ORDER BY sku  ";
}

你可以看到

WHERE sku LIKE '%" . $search . "%' and settlement_id LIKE '%" . $search . "%' 

这是我收到错误的地方,因为我只能从这样的一个函数中获取数据

WHERE sku LIKE '%" . $search . "%'

但是我无法获得两个不同的搜索结果,我应该使用两个不同的查询$ _POST [“query”]吗?

任何建议都会很棒,或者示例/示例演示PHP网站会很棒,它会帮助我了解它。

3 个答案:

答案 0 :(得分:2)

确实你没有使用聚合功能

    SELECT 
    settlement_id
    , sku
FROM  settlements
WHERE sku LIKE 'ISCE%' 
        AND settlement_id LIKE '7072432852'

WHERE sku IS NOT NULL AND LENGTH(sku) > 0
ORDER BY sku

在SQL中不推荐使用group by without aggreagtion函数..并且不允许使用最新版本的mysql ..(默认情况下)

使用group by without aggregation函数可以获得不可预测的结果

答案 1 :(得分:2)

您可以使用以下

解决此问题
SELECT
    settlement_id,
    sku
FROM
    settlements
WHERE
    (CONCAT(sku, settlement_id) LIKE '%" . $search . "%')
AND
    sku IS NOT NULL AND LENGTH(sku) > 0
ORDER BY
    sku

或者你应该能够用括号括起来

WHERE (sku LIKE '%" . $search . "%') OR (settlement_id LIKE '%" . $search . "%')

答案 2 :(得分:0)

感谢您的更新,我已经解决了这个问题,因为我决定删除' Sku'并保留其余部分,所以这就是发生的事情。

' Settlement_id'在PHP页面上使用选项下拉值,它们从MySQL和' SKU'中提取数据。搜索框正在输入框中使用。并且输入框使用Javascript Ajax过滤器来获取它显示的结果来自' Settlement_Id'数据

这是一个演示 http://amazonsettlement.ishka.ie/MultiSelect/