Самый простой способ получить следующую строку из таблицы SQL, когда я знаю вторую - PullRequest
0 голосов
/ 02 августа 2011

Привет всем, я пытаюсь написать скрипт сортировки.

. Для этого мой пользователь нажмет кнопку перемещения вверх, которая отправляет идентификатор текущего выбора, который мы хотим переместить на новую страницу, где находится сценарий.обработано.

Итак, используя приведенные ниже функции извлечения, я получаю идентификатор сортировки текущей строки, которую мы хотим переместить вверх

$sqlCurrent = "SELECT * FROM `contact` WHERE `contact_id` = $id LIMIT 0, 1 ";

$resultsCurrent= mysql_query($sqlCurrent) or die(mysql_error());

$rowC = mysql_fetch_row($resultsCurrent);

$currentSort =$rowC[9];

Затем я извлек все данные в порядке убывания, используя

Теперь, если мой текущий порядок сортировки равен 6, я хочу найти строку с порядком сортировки с 3, 4 или 5 по порядку, поэтому я использовал порядок по убыванию, и следующий скрипт сортировки появится в следующей таблице.

$sql = "SELECT * FROM `contact` ORDER BY `contact`.`contact_sortOrder` DESC LIMIT 0, 30 ";

Вопрос в том, как мне просто получить данные из этой строки, используя 1 или, может быть, две функции.

Мы не можем просто искать следующий порядок сортировки, поскольку возможно, что он не будеттам.

Для этого примера я использовал подобную базу данных

rowId 1 Sort order 6
rowId 2 Sort Order 2
rowId 3 Sort Order 4

Теперь у меня есть идентификатор строки 3, и я хочу заменить его следующей.Поэтому мне нужно как-нибудь подобрать rowId 2, используя самый короткий метод.

Любая помощь будет полезна

Ответы [ 2 ]

0 голосов
/ 02 августа 2011
select      prev.*
from        contact as curr
left join   contact as prev on prev.contact_sortOrder < curr.contact_sortOrder
where       curr.contact_id = $id
order by    prev.contact_sortOrder desc
limit 1
0 голосов
/ 02 августа 2011

Может быть простым

$query = "
  SELECT
    x,y,z
  FROM
    contact
  WHERE
    contact_sortOrder < $currentSort
  LIMIT
    1
";

(при условии, что $ currentSort безопасен для «прямой вставки» в запрос. См. http://docs.php.net/pdo.prepared-statements)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...