我在使用PHP对表进行排序时遇到问题。我只是想弄清楚如何制作按钮,我可以按标准对表进行排序而不会损坏代码。标准是对三列进行排序" Price"," ArtistName"和" AlbumName"按升序和降序排列。我很期待意见,我会感谢任何提示。
<?php
$con = mysqli_connect("", "", "", "");
if (!$con) {
die("Error: " . mysqli_connect_error());
}
$mysqlget = "SELECT * FROM Albums";
$mysqldata = mysqli_query($con, $mysqlget) or die ("Error: " . mysql_error($con));
echo "<table class='table_albums'>";
echo "<tr><th>Album</th><th>Description</th><th>Artist</th><th>Price</th><th colspan='2'>Additional Options</th></tr>";
while ($row = mysqli_fetch_array($mysqldata, MYSQLI_ASSOC)) {
echo "<tr><td>";
echo "<img class='album_artwork' src='";
echo $row['AlbumImage'];
echo "'></td><td><p class='info_album_artist'>";
echo $row['Info'];
echo "<p></td><td>";
echo "<img class='artist_artwork' src='";
echo $row['ArtistImage'];
echo "'></td><td><p class='info_album_artist'>£";
echo $row['Price'];
echo "<p></td><td>";
echo "<a href='";
echo $row['MoreInfo'];
echo "' class='more_info'>More Info</a></td><td>";
echo $row['Buy'];
echo "</td></tr>";
}
echo "</table>";
?>
答案 0 :(得分:0)
使用SQL很容易。例如:
按信息排序:
SELECT * FROM Albums ORDER BY Info
按降序排序:
SELECT * FROM Albums ORDER BY Info DESC
要制作对表格进行排序的按钮,我会使用GET,例如:
<a href="?orderby=Info">Info</a>
PHP代码:
$mysqlget = 'SElECT * FROM Albums';
if (isset($_GET['orderby'])) {
switch ($_GET['orderby']) {
case 'Info':
$mysqlget .= ' ORDER BY Info';
break;
case 'Artist':
$mysqlget .= ' ORDER BY Artist';
break;
// ...
}
}
$mysqldata = mysqli_query($con, $mysqlget) or die ("Error: " . mysql_error($con));
答案 1 :(得分:0)
你可以选择所有选项
<form method="post" action="">
<select name="sort" onchange="this.form.submit()">
<option>Order by ...</option>
<option value="price_desc">Price descending</option>
<option value="price_asc">Price ascending</option>
<option value="artist_name_desc">Artist Name descending</option>
<option value="artist_name_asc">Artist Name ascending</option>
<option value="album_name_desc">Album Name descending</option>
<option value="album_name_asc">Album Name ascending</option>
</select>
</form>
<?php
$sort = $_POST['sort'];
if ($sort == 'price_desc')
{
$mysqlget = "SELECT * FROM Albums ORDER BY Price DESC";
}
else if ($sort == 'price_asc')
{
$mysqlget = "SELECT * FROM Albums ORDER BY Price ASC";
}
else if ($sort == 'artist_name_desc')
{
$mysqlget = "SELECT * FROM Albums ORDER BY ArtistName DESC";
}
else if ($sort == 'artist_name_asc')
{
$mysqlget = "SELECT * FROM Albums ORDER BY ArtistName ASC";
}
else if ($sort == 'album_name_desc')
{
$mysqlget = "SELECT * FROM Albums ORDER BY AlbumName DESC";
}
else if ($sort == 'album_name_asc')
{
$mysqlget = "SELECT * FROM Albums ORDER BY AlbumName ASC";
}
else
{
$mysqlget = "SELECT * FROM Albums";
}
$mysqldata = mysqli_query($con, $mysqlget) or die ("Error: " . mysql_error($con));
echo "<table class='table_albums'>";
echo "<tr><th>Album</th><th>Description</th><th>Artist</th><th>Price</th><th colspan='2'>Additional Options</th></tr>";
while ($row = mysqli_fetch_array($mysqldata, MYSQLI_ASSOC)) {
echo "<tr><td>";
echo "<img class='album_artwork' src='";
echo $row['AlbumImage'];
echo "'></td><td><p class='info_album_artist'>";
echo $row['Info'];
echo "<p></td><td>";
echo "<img class='artist_artwork' src='";
echo $row['ArtistImage'];
echo "'></td><td><p class='info_album_artist'>£";
echo $row['Price'];
echo "<p></td><td>";
echo "<a href='";
echo $row['MoreInfo'];
echo "' class='more_info'>More Info</a></td><td>";
echo $row['Buy'];
echo "</td></tr>";
}
echo "</table>";
?>