按 PHP 连接表和排序


Join table and order by PHP?

我试图使用 php 按从低到高和从高到低进行简单的排序,但无济于事。

我不知道是什么阻止它工作,并且由于某种奇怪的原因,我总是从低到高ordered by yt.id获取mysql数据。

这是我的查询代码:

$clause = " WHERE ";//Initial clause
$sql="SELECT *
FROM `yt`
INNER JOIN `ATTRIBUTES` ON yt.id=ATTRIBUTES.id";//Query stub
    if(isset($_POST['keyword'])){
        foreach($_POST['keyword'] as $c){
            if(!empty($c)){
                $keyword2 = $_POST['keyword2'];
                ##NOPE##$sql .= $clause."`".$c."` LIKE '%{$c}%'";
                $sql .= $clause . " (ATTRIBUTES.sizes LIKE BINARY '$c' OR ATTRIBUTES.colors LIKE BINARY '$c' OR ATTRIBUTES.manu LIKE BINARY '$c' OR ATTRIBUTES.attr LIKE BINARY '$c') AND ATTRIBUTES.type='$keyword2'";
                $clause = " OR ";//Change  to OR after 1st WHERE
            }
        }
        $sql .= " GROUP BY yt.id";
        $sql .= " ORDER BY yt.id DESC";
///rest of my code/////

做什么并不重要,我总是从低到高!

我这样做对吗?

任何帮助将不胜感激。

你总是有$_POST['keyword']吗?

如果没有,或者即使您尝试过:

$clause = " WHERE ";//Initial clause
$sql="SELECT *
FROM `yt`
INNER JOIN `ATTRIBUTES` ON yt.id=ATTRIBUTES.id";//Query stub
if(isset($_POST['keyword'])){
    foreach($_POST['keyword'] as $c){
        if(!empty($c)){
            $keyword2 = $_POST['keyword2'];
            ##NOPE##$sql .= $clause."`".$c."` LIKE '%{$c}%'";
            $sql .= $clause . " (ATTRIBUTES.sizes LIKE BINARY '$c' OR ATTRIBUTES.colors LIKE BINARY '$c' OR ATTRIBUTES.manu LIKE BINARY '$c' OR ATTRIBUTES.attr LIKE BINARY '$c') AND ATTRIBUTES.type='$keyword2'";
            $clause = " OR ";//Change  to OR after 1st WHERE
        }
    }
}
$sql .= " GROUP BY yt.id";
$sql .= " ORDER BY yt.id DESC";

或者只是向我们展示一个完整的代码片段,如果没有或之后会发生什么if(isset($_POST['keyword'])){