Данный скрипт выводит все найденные результаты по маске из таблицы users. Как сделать так, чтобы при нажатии на кнопку Город, сортировал по алфавиту?
<div class="resultat"><table>
<tbody><tr><th>Город:</th><th>Компания:</th><th>Телефон:</th><th>Категория:</th><th>Дата:</th></tr> </div>
<?php
require 'scripts/connect.php';
$sql_select = "SELECT * FROM users";
$result = mysql_query($sql_select);
$row = mysql_fetch_array($result);
do
{
printf("<tr>
<td>" .$row['name'] . "</td>
<td>" .$row['last_name'] ."</td>
<td>" .$row['email'] . "</td>
<td>" .$row['facebook'] . "</td>
<td>" .$row['time'] . "</td>
</tr>");
}
while($row = mysql_fetch_array($result));
?></tbody></table>
Предположим, что Вы хотите сделать, чтобы при нажатии на ячейку шапки город, сортировка шла по столбцу city таблицы mysql. Тогда решение будет такое:
<div class="resultat"><table>
<tbody><tr><th><a href="page.php?sort=city" title="сортировать по полю город">Город</a>:</th><th>Компания:</th><th>Телефон:</th><th>Категория:</th><th>Дата:</th></tr> </div>
<?php
require 'scripts/connect.php';
$sqlAdd = (!empty($_GET["sort"]) && $_GET["sort"]=='city') ? " Order by city" : "";
$sql_select = "SELECT * FROM users".$sqlAdd;
$result = mysql_query($sql_select);
$row = mysql_fetch_array($result);
do
{
printf("<tr>
<td>" .$row['name'] . "</td>
<td>" .$row['last_name'] ."</td>
<td>" .$row['email'] . "</td>
<td>" .$row['facebook'] . "</td>
<td>" .$row['time'] . "</td>
</tr>");
}
while($row = mysql_fetch_array($result));
?>
</tbody></table>
Можно сортировать на стороне сервера, также можно на стороне клиента.
Чтобы сортировать на стороне сервера необходимо на сервер передать признак критерия сортировки и исходя от того признака составить sql выражение. Например, при нажатии на кнопку Город запросом GET передается параметр sort=city. А скрипт измениться примерно так:
$orderBy = '';
if (isset($_GET['sort'])) {
switch ($_GET['sort']) {
case 'city': $orderBy = ' order by `city`'; break;
case '-city': $orderBy = ' order by `city` desc'; break;
}
}
$sql = 'select * from `users`' . $orderBy;
Если сортировка производится на стороне клиента тогда можно использовать готовые скрипты типа https://datatables.net/examples/basic_init/table_sorting.html.
Как всегда у обеих методов есть плюсы и минусы. Например, если кол-во записей большое число, и данные загружаются постранично, тогда придется сортировать на стороне сервера.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Созрел такой вопрос: Есть форма, пользователь вводит данные, форма передаёт на обработчик, например sendphp, тот в свою очередь соединяется с mySql и вносит...
пытаюсь выполнить через ajax код: