mysql — ЗАКАЗ mysqli / PHP, как добавить больше порядка?

Может быть, это глупый вопрос, но я не уверен, как расширить этот код для порядка, например, по опубликованному имени, по размеру, по имени и т. Д., Просто сделать больше кнопок упорядочивания.

Это код:

$query ="SELECT newsvid.id, newsvid.addName, newsvid.vidTitle, newsvid.url, newsvid.vidSD, newsvid.published, videoinformation.vidLD, videoinformation.vidYear, videoinformation.vidCity, videoinformation.vidZanr, videoinformation.vidZanr2, videoinformation.vidZanr3, videoinformation.vidQuality, videoinformation.vidTranslated, videoinformation.vidTime  FROM newsvid, videoinformation WHERE newsvid.id = videoinformation.id";
$order = isset($_GET['order']) ? $_GET['order'] : 'ASC';
$goodParam = array("ASC", "DESC");

if (in_array($order, $goodParam)) {
if($order == 'ASC'){
$query .= " ORDER BY newsvid.id ASC";
}else{
$query .= " ORDER BY newsvid.id DESC";
}
}

И это мои кнопки:

<a href="view.php?order=ASC">ASC</a>
<a href="view.php?order=DESC">DESC</a>

Постскриптум Я использую образцы из Интернета и перехожу на свой веб-сайт, и теперь не могу их расширить, не знаю как.

Спасибо

Что именно мне нужно изменить в php-коде, чтобы использовать эти ссылки?

<a href="view.php?order=ASC">ASC</a>
<a href="view.php?order=name">BY Name</a>
<a href="view.php?order=year">By Year</a>
<a href="view.php?order=published">By Publishing</a>
<a href="view.php?order=size">By Size</a>

Должен ли я использовать как это?

if (in_array($order, $goodParam)) {
if($order == 'ASC'){
$query .= " ORDER BY newsvid.id ASC";
}else if{
$query .= " ORDER BY newsvid.vidTitle DESC";
}else if{
$query .= " ORDER BY newsvid.published DESC";
}else{
$query .= " ORDER BY videoinformation.vidZard DESC";
}
}

0

Решение

Вы можете использовать более одного ORDER BY как это:

ORDER BY newsvid.id ASC, newsvid.addName DESC

Сортируйте сначала идентификатор и с двумя равными идентификаторами имя.

Если вы просто попытаетесь добавить новую сортировку, вы можете просто изменить имя в своем ORDER BY

Ты можешь сделать:

if($order == 'ASC'){
$query .= " ORDER BY newsvid.id ASC";
} elseif ($order == 'name') {
$query .= " ORDER BY newsvid.addName ASC";
} elseif ($order == 'year') {
$query .= " ORDER BY newsvid.vidYear ASC";
}
1

Другие решения

Вы должны прочитать об общем SQL. ORDER BY может принимать несколько аргументов, например ORDER BY id, date_created, upvotecount,

Также: SQL несколько столбцов

0

По вопросам рекламы [email protected]