我试图使用 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'])){