Intereting Posts
PHP написать в файл как отключить cookie в PHP? Алгоритм интеллектуальной разбивки на страницы SimpleXML – echo / print_r возвращает разные значения Поиск в Google: скопировать страницу результатов в PHP для итоговых результатов Случай переключения PHP более 1 значения в случае собираемся построить php MVC, какие соглашения об именах мне нужно знать? PhpDoc для интерфейса и интерфейса реализации класса – разница Проверьте, существует ли определенный массив ключей в многомерном массиве – PHP libxml htmlParseDocument игнорирует флаги htmlParseOption php regex для получения строки внутри тега href В PHP выводятся как массив байтов и поток. Какая из них лучше? Какие шаблоны я мог бы использовать в коде, чтобы упростить перевод на другой язык программирования? Как использовать CURL через прокси? Рабочий пример реализации «Аутентификация на основе токенов» с использованием «JSON Web Token (т.е. JWT)» в PHP и MySQL?

выпадающее меню для сортировки результатов запроса на странице php

У меня есть простая php-страница типа list-type, в которой перечислены элементы в соответствии с запросом mysql, например:

mysql_select_db($database_connBHN, $connBHN); $query_rsMarket = "SELECT * FROM my_items WHERE active=1 ORDER BY name asc"; $rsMarket = mysql_query($query_rsMarket, $connBHN) or die(mysql_error()); $row_rsMarket = mysql_fetch_assoc($rsMarket); $totalRows_rsMarket = mysql_num_rows($rsMarket); 

то страница перечислит эти элементы и их описание в отдельных таблицах.

Первоначально эта страница перечисляет эти элементы в алфавитном порядке. Теперь я хотел бы поместить раскрывающийся список в верхней части страницы, где пользователь мог выбрать еще две или три опции сортировки, такие как date или itemId и т. Д., Какие значения хранятся в базе данных.

Как я могу решить это простым способом, не покидая эту страницу? (т. е. я не хочу создавать отдельные страницы для каждого другого набора результатов)

Нет, проще сохранить это как один скрипт и просто включить переменную сортировки. Для безопасности, лучше всего ограничить ввод пользователя определенным набором параметров в скрипте PHP:

 $sort_options = array('name asc','name desc','dateadded asc','dateadded desc'); if(!isset($_GET['field'])){ $_GET['field'] = 'name'; } if (!isset($_GET['order'])){ $_GET['order'] = 'asc'; } $full_query_sort = $_GET['field'].' '.$_GET['order']; if (!in_array($full_query_sort,$sort_options)){ die('invalid selection'); } mysql_select_db($database_connBHN, $connBHN); $query_rsMarket = "SELECT * FROM my_items WHERE active=1 ORDER BY ".$full_query_sort; $rsMarket = mysql_query($query_rsMarket, $connBHN) or die(mysql_error()); $row_rsMarket = mysql_fetch_assoc($rsMarket); $totalRows_rsMarket = mysql_num_rows($rsMarket); 

Теперь вы можете просто установить порядок с переменными _GET: http://example.com/page.php?field=name&order=desc и т. Д. Это можно установить с помощью javascript (или при отправке формы) с помощью выпадающих меню:

 <select id='field_select' name='field' onchange="window.location='?field='+this.value+'&order='+document.getElementById('order_select').value;"> <option value='name' <?php if(!isset($_GET['field']) || $_GET['field']=='name'){echo "selected";} ?>>Sort by Name</option> <option value='dateadded' <?php if(isset($_GET['field']) && $_GET['field']=='dateadded'){echo "selected";} ?>>Sort by Date Added</option> </select> <select id='order_select' name='order' onchange="window.location='?field='+document.getElementById('field_select').value+'&order='+this.value;"> <option value='asc' <?php if(!isset($_GET['order']) || $_GET['order']=='asc'){echo "selected";} ?>>Ascending/option> <option value='desc' <?php if(isset($_GET['order']) && $_GET['order']=='desc'){echo "selected";} ?>>Decending</option> </select>