2017-02-21 21 views
0

Я хочу сделать список результатов базы данных на своем веб-сайте. Максимальное количество результатов, которые будут возвращены, равно 5, и я хочу, чтобы пользователь мог выбрать порядок, в котором они отображаются. Для этого у меня есть столбец «порядок» в моей таблице базы данных, который позволяет установить порядок в 1, 2, 3, 4 или 5. Когда список будет восстановлен, сначала отобразится 1 и т. Д.Set Database Row Order

Ну, я пытаюсь сделать это, если вы удалите столбец, который упорядочен как «3», тогда два столбца, упорядоченные в 4 и 5, автоматически изменятся на 3 и 4. Затем, когда пользователь вводит новый результат в базе данных, он проверит, сколько записей там, а затем узнайте, найдет ли он 4, следующий должен быть порядка 5. Или, если он находит 2 результата, следующий должен быть порядка 3.

Эта последняя часть достаточно проста, и я могу это сделать, что я не могу сделать, это настроить столбцы там, где она не пропускает никаких чисел.

Прямо сейчас, я использую типичный способ удаления столбцов ... Есть ли что-то, что я мог бы добавить, который мог бы решить то, что я хочу сделать?

$sql = $this->dbh->prepare("DELETE FROM ". $this->config['db']['table4'] ." WHERE ". $this->config["db"]["columns"]["id"] ."= '$shift'"); 

ответ

2

использовать номер строки вместо номера столбца, так что вам не нужно управлять номерами

SELECT 
    @i:[email protected]+1 AS iterator, 
    t.* 
FROM 
    tablename AS t, 
    (SELECT @i:=0) AS foo