Сортировка по столбцам в сгенерированной таблице php+mysql

Есть таблица, она генерируется на php из базы данных mysql.

У меня не получается сделать так, чтобы при нажатии на столбец этой таблицы (имя, почта и т.д.) менялась сортировка по возрастанию/убыванию. Сообщения загружаются по 5 штук на страницу, сортировка по-умолчанию DESC. Ее бы тоже хорошо как-нибудь переключать из таблицы на ASC и DESC обратно.

Подскажите, как можно это все реализовать, но без использования javascript'a, ajax'a и любых фреймворков.
Спасибо.

function addForm()
	{
		
		//Переменные для запроса вывода и сортировки
		$u = 'username';
		$e = 'email';
		$st = 'send_time';
		
		$d = 'DESC';
		$a = 'ASC';
		
			
		$mysqli = new mysqli ($host, $username, $password, $db);
			if ($mysqli->connect_errno)
				die ('Ошибка! Не удалось подключиться к базе данных!' . $mysqli->connect_errno);
						
		
		if (isset($_GET['page']))
			{
				$page = $_GET['page'];
			}	
		else
			$page = 1;
		
		$msg_on_page = 5;	//Количество записей на странице
		$start_from = ($page - 1) * $msg_on_page;
		$sql = "SELECT `username`, `email`, `homepage`, `msg`, `send_time`
				FROM `user_data` 
				ORDER BY $st $d LIMIT $start_from, $msg_on_page";
				
		$result = mysqli_query($mysqli,$sql);
		
			if (!$result)
				die('Error: ' . mysqli_error($mysqli));
			else
				{
					echo "<table border = '1'>
						<tr>
							<th>Имя пользователя</th>
							<th>E-mail</th>
							<th>Homepage</th>
							<th>Комментарий</th>
							<th>Дата добавления</th>
						</tr>";
			
					while ($row = mysqli_fetch_array($result))
						{
							echo "<tr>";
							echo "<td>" . $row['username'] . "</td>";
							echo "<td>" . $row['email'] . "</td>";
							echo "<td>" . $row['homepage'] . "</td>";
							echo "<td>" . $row['msg'] . "</td>";
							echo "<td>" . $row['send_time'] . "</td>";
						}
								
					echo "</table>";
			}		 
		
		
	//------------------------------------------------------------------------------------------------------		
		
	
	//Pagination
	$sql = "SELECT COUNT(id) FROM user_data";
	$result = mysqli_query($mysqli,$sql);
	
	if (!$result)
		die('Error: ' . mysqli_error($mysqli));
			
	else
		{
			$row = mysqli_fetch_array($result);
			$total_records = $row[0];
			$total_records = ceil($total_records / $msg_on_page);
			echo "<br>";
			for ($i = 1; $i <= $total_records; $i++)
			echo "<a href = 'index.php?page=" . $i . "'> " . $i . " </a>";
										
		}		 
	
	mysqli_close($mysqli);		
}
  • Вопрос задан
  • 8757 просмотров
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
ну так в чем проблема? Передавайте через get параметры по чем сортировать и в какую сторону, а заголовок нужного столбца сделайте ссылкой. Только обязательно нужно будет проверять присланные данные.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
evnuh
@evnuh
Поиск Гугл помог мне, впусти и ты его в свой дом
Я, кажется, начинаю понимать суть тостера.
Habra - профессионалы делятся опытом, бесплатно.
Hantim - профессионалы реализуют себя за зарплату.
Freelansim - самовлюбленные профессионалы и начинающие пытаются себя реализовать за зарплату.
Brainstorage - все, кто считает себя профессионалом ищут себе подобных и добавляются в друзья.
Toster - памагите вы же профессианалы напешыте код!!!!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы