Переупорядочить строки записи базы данных через интерфейс с помощью php - PullRequest
0 голосов
/ 04 сентября 2010

Я использую PHP / MYSQL.Я хочу в своем интерфейсе, чтобы пользователи сортировали и переупорядочивали записи базы данных, введенные самим пользователем на более ранней стадии.Записи, загруженные пользователем, могут иногда вставляться в базу данных случайным образом, поэтому в профиле пользователя он / она может иметь возможность переупорядочивать строки в базе данных в соответствии с этим.

Может ли кто-нибудь предоставить мне скрипт, который поможет мне сделать это.

id  title     date     desc
1   s1        s1_date  s1_desc
2   s2        s2_date  s2_desc
3   s3        s3_date  s3_desc
4   s4        s4_date  s4_desc
5   s5        s5_date  s5_desc

В профиле пользователя он хочет изменить порядок строк, чтобы s2 поднялся на один и сохранилкак s2-> s1 и s1-> s2 для каждого поля .. может быть обмен записей между

Я смотрю это по-другому .. страница пользователя покажет поле в строках и сбокубудет поле ввода каждого текущего идентификатора строки, скажем, (id) установлен как значение этого поля ввода, так что пользователь может переключаться между ними и отправлять весь переупорядоченный список на серверную часть.В таком случае, что мы можем сделать ... будет много обменов на одновременно ..

Ответы [ 2 ]

4 голосов
/ 04 сентября 2010

Лучшее решение - добавить еще одно поле "ordering", где вы можете хранить int ID по умолчанию, и при перестановке строк вы можете поменять местами значения порядка между этими строками. В запросе вы должны сделать ORDER BY, заказав ASC / DESC

0 голосов
/ 04 сентября 2010

Получить обе строки и обновить значения :

Предполагая, что имя таблицы: t

$result = mysql_query("SELECT title, `date`, `desc` FROM t WHERE id = 1");
$row1 = mysql_fetch_assoc($result);

$result = mysql_query("SELECT title, `date`, `desc` FROM t WHERE id = 2");
$row2 = mysql_fetch_assoc($result);

mysql_query("UPDATE t SET title = '{$row2['title']}', `date` = '{$row2['date']}', `desc` = '{$row2['desc']}' WHERE id = 1");
mysql_query("UPDATE t SET title = '{$row1['title']}', `date` = '{$row1['date']}', `desc` = '{$row1['desc']}' WHERE id = 2");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...