На самом деле ни один из двух внутренних if не работает правильно.
Вам нужно использовать ==
, а не =
.Один знак равенства означает присваивание, и если вы присваиваете истинное значение, оно всегда оценивается как истинное в условии if.Вот почему ваш elseif, кажется, никогда не происходит.
Вам также может понадобиться исправить ваши WHERE
предложения, они не имеют смысла для меня (вы сортируете, но сравниваете столбец up
иdown
столбец?).Или, может быть, именно так вы спроектировали свою таблицу ...
На основе ваших комментариев попробуйте следующие предложения SQL WHERE
и посмотрите, получите ли вы правильные сообщения:
if ($sort == "up") {
$where .= " AND up > down";
}
elseif ($sort == "down") {
$where .= " AND down > up";
}