PHP/MYSQL对MYSQL数据的回显表进行排序
我有一个使用mysql构建php站点的课程作业。PHP/MYSQL对MYSQL数据的回显表进行排序,php,mysql,sorting,pdo,Php,Mysql,Sorting,Pdo,我有一个使用mysql构建php站点的课程作业。我需要能够根据数据表的列对其进行排序。使用PDO从mysql数据库检索数据。然后,我只是在循环遍历每一行数据时回显一个表 关于如何按列对数据进行排序,有什么想法吗?我希望能够通过单击表标题对数据进行排序(升序)。但我对想法持开放态度 代码如下: PHP: 我在页面的其余部分有更多的PHP。我不确定我还需要包括哪些内容才能更好地理解这个问题,但任何想法都会有所帮助。设置一种机制,将用户的排序要求发送回服务器(query param?post?),并使
我需要能够根据数据表的列对其进行排序。使用PDO从mysql数据库检索数据。然后,我只是在循环遍历每一行数据时回显一个表 关于如何按列对数据进行排序,有什么想法吗?我希望能够通过单击表标题对数据进行排序(升序)。但我对想法持开放态度 代码如下: PHP:
我在页面的其余部分有更多的PHP。我不确定我还需要包括哪些内容才能更好地理解这个问题,但任何想法都会有所帮助。设置一种机制,将用户的排序要求发送回服务器(query param?post?),并使用这些要求在MySQL查询中设置ORDER BY子句。下面是一个简单、非健壮的实现 必须使用参数创建一些活动链接,如下所示:
function displayBooks($data){
echo "<table id= \"allBooks\">";
echo "<th><a href='index.php?col=1&order_by=1'>Book ID ASC</a>|<a href='index.php?col=1&order_by=2'>Book ID DESC</a></th><th><a href='index.php?col=2&order_by=1'>Title ASC</a>|<a href='index.php?col=2&order_by=2'>Title ID DESC</a></th>";
#foreach($data as $row)
{
echo "<tr>";
echo "<td>".$row['bookID']."</td>";
echo "<td>".$row['title']."</td>";
echo "</tr>";
}
echo "</table>";
//Retrieve all books
$all_books_query = "SELECT b.bookID,b.title,b.description,b.quantity,b.price,c.name FROM Books b
INNER JOIN Book_Category bc ON bc.bookID = b.bookID
INNER JOIN Category c ON c.catID = bc.catID
GROUP BY b.bookID;";
$rows = $db->query($all_books_query)->fetchAll();
function displayBooks($data){
echo "<table id= \"allBooks\">";
echo "<th><a href='index.php?col=1&order_by=1'>Book ID ASC</a>|<a href='index.php?col=1&order_by=2'>Book ID DESC</a></th><th><a href='index.php?col=2&order_by=1'>Title ASC</a>|<a href='index.php?col=2&order_by=2'>Title ID DESC</a></th>";
#foreach($data as $row)
{
echo "<tr>";
echo "<td>".$row['bookID']."</td>";
echo "<td>".$row['title']."</td>";
echo "</tr>";
}
echo "</table>";
//Retrieve all books
$order_by = 'ASC';
switch ( (int)$_GET['order_by'] ) {
case 1:
$order_by = 'ASC';
break;
case 2:
$order_by = 'DESC';
break;
}
$col= "bookID";
switch ( (int)$_GET['col'] ) {
case 1:
$col = 'bookID';
break;
case 2:
$col = 'title';
break;
}
$all_books_query = "SELECT b.bookID,b.title,b.description,b.quantity,b.price,c.name FROM Books b
INNER JOIN Book_Category bc ON bc.bookID = b.bookID
INNER JOIN Category c ON c.catID = bc.catID
GROUP BY b.bookID
ORDER BY $col $order_by";
$rows = $db->query($all_books_query)->fetchAll();