Обновленный пример с небольшим фрагментом, использующимся в базе данных памяти :) PS: защита XSS в этом примере вообще не нужна, потому что я проверяю ввод как логическое значение.Чтобы увидеть результаты в обратном порядке, вы указываете order?desc
<?php
/* XSS-protection. */
$_GET = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING);
$array = array(
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
);
function createTable($db) {
$db->exec("CREATE TABLE IF NOT EXISTS tags (id INTEGER PRIMARY KEY, tag TEXT NOT NULL UNIQUE)");
}
function insertData($db, $array) {
$db->beginTransaction();
foreach($array as $elm) {
try {
$stmt = $db->prepare("INSERT INTO tags (tag) VALUES (:tag)");
$stmt->execute(array(
":tag" => $elm
));
} catch(PDOException $e) {
/*** roll back the transaction if we fail ***/
$db->rollback();
/*** echo the sql statement and error message ***/
echo $sql . '<br />' . $e->getMessage();
}
}
$db->commit();
}
$db = new PDO('sqlite::memory:');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
//
createTable($db);
insertData($db, $array);
$order = "ASC";
if (strtoupper($_GET['order']) == "DESC") {
$order = "DESC";
}
$stmt = $db->prepare("SELECT * FROM tags ORDER BY tag $order");
$stmt->execute();
$data = array();
while($row = $stmt->fetch()) {
$data[] = array($row['tag']);
}
echo json_encode($data);
Надеюсь, вы понимаете, чего я пытаюсь достичь (если не просто спросите).Любая помощь в этом с идеями, подходами или примерами была бы полезна.
Сначала у меня есть пара вопросов, которые вы говорите, что используете PHP5.Как вы получаете ваши данные (RDBMS)?Если нет, в PHP5 SQLite по умолчанию включен .Я думаю, что вы должны использовать по крайней мере RDBMS (SQLite / etc) для выполнения тяжелой работы за вас.
Когда вы изучаете SQL , у вас нетна любую сортировку в PHP.Я думаю, что этот PDO-учебник пока расскажет вам, как использовать SQL, делая это безопасно.SQL уязвим для SQL-инъекций, но благодаря подготовленным инструкциям PDO вам больше не нужно об этом беспокоиться.
У меня есть набор результатов, которые извлекаются из многомерного массива.В настоящее время ключ массива - это цена продукта, в то время как элемент содержит другой массив, который содержит все детали продукта.
Используйте ORDER BY для заказа.Я бы использовал datatable для сортировки на стороне клиента.Также позволяет вам выполнять работу на сервере (PHP).Вы можете, например, взглянуть на данные YUI2 .