Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/MySQL:通过单击页面中的超链接对数据库结果进行排序_Php_Mysql - Fatal编程技术网

PHP/MySQL:通过单击页面中的超链接对数据库结果进行排序

PHP/MySQL:通过单击页面中的超链接对数据库结果进行排序,php,mysql,Php,Mysql,我有一个从数据库执行查询的页面。共有5列,我希望第一列和最后一列是排序超链接。这是我的密码。我希望能够点击“价格”或“课程ID”栏,按类别对它们进行排序。当我点击链接时,什么也没发生,但是?sort=价格显示在url上。我对PHP和MySQL相当陌生,在网上找不到任何东西。先谢谢你 <?php require_once ('mysqli_connect.php'); //grab data from database $course = "SELECT course.courseID,

我有一个从数据库执行查询的页面。共有5列,我希望第一列和最后一列是排序超链接。这是我的密码。我希望能够点击“价格”或“课程ID”栏,按类别对它们进行排序。当我点击链接时,什么也没发生,但是?sort=价格显示在url上。我对PHP和MySQL相当陌生,在网上找不到任何东西。先谢谢你

<?php 
require_once ('mysqli_connect.php');

//grab data from database
$course = "SELECT course.courseID, course.courseTitle, course.credit, 
           book.bookTitle, book.price, book.isbn13
           FROM course
           INNER JOIN coursebook ON course.courseID=coursebook.course
           JOIN book ON coursebook.book=book.isbn13
           ORDER BY course.courseID";

$course_response = mysqli_query($dbc, $course);

$isbn = "SELECT isbn13 FROM book";

$isbn_response = mysqli_query($dbc, $isbn);    

    // Close connection to the database
    mysqli_close($dbc);

?>

 <!DOCTYPE html>
 <html>
 <!-- the head section -->
 <head>
      <title>Book Catalog</title>
 </head>

 <!-- the body section -->
 <body>
     <main>

     <div>
     <h1 align='center'>Book Catalog</h1>

     <?php $array = array(); // make a new array to hold data
     $index = 0; 
     ?>
     <?php if($course_response){ ?>


     <table align="left" cellspacing="5" cellpadding="8">
     <tr>
     <td align="left"><a href="index.php?sort=course"><b>Course #</b> 
     </td>
     <td align="left"><b>Course Title</b></td>
     <td align="left"><b>Book Image</b></td>
     <td align="left"><b>Book Title</b></td>
     <td align="left"><b><a href="index.php?sort=price">Price</a></b> 
     </td>
     </tr>
     <?php 
     if ($_GET['sort'] == 'price') {
         $query .= " ORDER BY book.price";
     }elseif ($_GET['sort'] == 'course') {
         $query .= " ORDER BY Description";
     }
     ?>


     <?php while($row = mysqli_fetch_array($course_response)){ ?>
     <tr>
     <td align="left">
     <a href="www.barnesandnoble.com"> 
                        <?php echo $row['courseID']; ?></a></td>
     <td align="left"> <?php echo $row['courseTitle']; ?> (<?php echo 
     $row['credit']; ?>)</td>
     <td align="left"> <a href='bookDetails.php'>
        <?php $isbnrow = $row['isbn13']; ?><img src='images/<?php echo 
     $isbnrow?>.jpg' width='90px' height='100px'></a></td>
     <td align="left"> <?php echo $row['bookTitle']; ?></td>
     <td align="left"> <?php echo "$" . $row['price']; ?></td>
     </tr>

     <?php } ?>
     <?php } else {

            echo "Couldn't issue database query<br />";
            echo mysqli_error($dbc);

        } ?>
     </table>
    </div>

   </main>  
   </body>
   </html> 

图书目录
图书目录
()

您没有将get参数传递给mysql查询以对结果进行排序。 通过以下代码更新您的代码:

<?php 
require_once ('mysqli_connect.php');
//grab data from database

$order_by = null;
if($_GET){
    switch($_GET['sort']){
        case 'price' :
            $order_by = 'ORDER BY book.price ASC';
        break;      
        case 'course' ;
            $order_by = 'ORDER BY course.courseID DESC';    
        break
    }
}

$course = "SELECT course.courseID, course.courseTitle, course.credit, 
   book.bookTitle, book.price, book.isbn13
   FROM course
        INNER JOIN coursebook ON course.courseID=coursebook.course
        JOIN book ON coursebook.book=book.isbn13 ";
$course .= (!is_null($order_by)) ? $order_by : "ORDER BY course.courseID ASC";

$course_response = mysqli_query($dbc, $course);
if(!$course_response){
    die("Error in query: " . mysqli_error($dbc));
}    
?>
<!DOCTYPE html>
<html>
<head><title>Book Catalog</title></head>
<body>
<main>
<div>
    <h1 align='center'>Book Catalog</h1>
<?php if($course_response){ ?>
    <table align="left" cellspacing="5" cellpadding="8">
        <tr>
            <td align="left"><a href="index.php?sort=course"><b>Course #</b></td>
            <td align="left"><b>Course Title</b></td>
            <td align="left"><b>Book Image</b></td>
            <td align="left"><b>Book Title</b></td>
            <td align="left"><b><a href="index.php?sort=price">Price</a></b></td>
        </tr>
    <?php while($row = mysqli_fetch_array($course_response)){ ?>
         <tr>
             <td align="left"><a href="www.barnesandnoble.com"><?php echo $row['courseID']; ?></a></td>
             <td align="left"> <?php echo $row['courseTitle']; ?> (<?php echo $row['credit']; ?>)</td>
             <td align="left"> <a href='bookDetails.php'><?php $isbnrow = $row['isbn13']; ?><img src='images/<?php echo $isbnrow?>.jpg' width='90px' height='100px'></a></td>
             <td align="left"> <?php echo $row['bookTitle']; ?></td>
             <td align="left"> <?php echo "$" . $row['price']; ?></td>
         </tr>
    <?php } ?>
<?php } else { echo 'results not found!'; } ?>
     </table>
</div>
</main>  
</body>
</html>
<?php 
// Close connection to the database
mysqli_close($dbc);
?>

图书目录
图书目录
()

首先,您过早地关闭了连接,这可能就是代码失败的原因。使用这种方法,您每次单击超链接时都会运行一个新的查询。如果您只想使用查询结果对表进行排序,请使用允许您这样做的众多JS库之一。