Гиперссылка с использованием запроса - PullRequest
0 голосов
/ 06 сентября 2011

Мои результаты поиска отображаются нормально, но у меня есть несколько категорий.Я хочу иметь возможность выбрать столбец и использовать ORDER BY.Вот что я должен попробовать сделать.

<a href='searchresult.php?db=members&table=people&sql_query=SELECT+%2A+FROM+%60people%60+ORDER+BY+%60lastname%60.%60level%60++DESC+%60AGAINST+$search&token=5e1a18b6cccb5db7a37bb3fce055801a'>Last Name</a>

$ search - это то, что я ищу.и когда я смотрю на ссылку, он показывает, что я искал на своем месте.Я подумал, что это сработает, но, конечно, это не так.Как правильно настроить этот параметр для каждого из моих столбцов, чтобы при нажатии на ссылку мои результаты сортировались по порядку этого столбца?

1 Ответ

1 голос
/ 06 сентября 2011

Первое, что должно кричать на вас, - это НИКОГДА выполнить любой запрос SQL, содержащий любые входные данные, которые могут быть получены от клиента, без предварительной его очистки.Выполнение всего запроса из (потенциально) пользовательского ввода позволит им выполнить команду, подобную DROP DATABASE или TRUNCATE TABLE, или, что еще хуже, они могут получить из него конфиденциальную информацию.

Так что вы должны жестко кодироватьваш запрос SQL и просто примите пользовательский ввод для конкретных значений, которые вы запрашиваете, но сначала очистите их, выполнив что-то вроде этого:

$query = sprintf("SELECT * FROM 'people' ORDER BY %s DESC", mysql_real_escape_string($_GET["orderby"]));

Теперь перейдем к фактическимвопрос ... после загрузки страницы у вас есть два варианта:

  1. Вы можете выполнить повторный запрос, используя AJAX.
  2. Вы можете отсортировать таблицу, используя Javascript.

Что лучше, действительно зависит от того, сколько строк вы ожидаете.

Если вы выбираете много строк, сортировка с помощью Javascript начинает работать довольно медленно, но если это всего лишь несколько строк (вроде меньше 100 или около того), то Javascript - это, вероятно, путь.Я не знаю много о других библиотеках, таких как JQuery или других, не уверен, есть ли у них лучшее решение.Таким образом, для многих строк использование AJAX для повторного запроса к базе данных, вероятно, быстрее.

Однако, если ваша страница состоит только из этой таблицы сама по себе, в действительности нет никакого смысла в использовании AJAX в отличие отпросто обновите страницу другим запросом.

Если вы решите отсортировать таблицу с помощью Javascript, библиотека, подобная этой, может помочь.Или просто Google "таблица сортировки JavaScript".

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