2015-09-25 156 views
2

我正在開發一個項目,我必須從mysql中顯示數據,我已經成功完成了這項工作,但現在我需要對基於高視圖,低視圖,新添加的結果進行排序舊的,所有這些選項使用選擇下拉菜單。如何通過選擇菜單對mysql結果進行排序

HTML文件

<form action="index.php" method="post" >     
    <select name="q">     
     <option value="DESC" name="DESC">High views</option>  
     <option value="ASC" name="ASC">Low views</option>     
    </select>       
</form> 

PHP文件

<?php 

    $servername = "localhost"; 
    $username = "root"; 
    $password = ""; 
    $dbname = "movie_db"; 
    $q = $_Post['q']; 

// Create connection 
    $conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

    $sql = "SELECT `title`, `poster`, `descrip`, `movie` ,`Duration`, `views`,`director` FROM `movie_db` ORDER BY `views` ".$q ; 
    $result = $conn->query($sql); 

    if ($result->num_rows > 0) { 
     echo "<p1>"; 
    // output data of each row 
     while($row = $result->fetch_assoc()) 
     echo " <div class=\"imgc\"><a href=".$row["movie"]."><img src =" . $row["poster"]. "></a></div></p1><p2><b><a href=" .$row["movie"].">" . $row["title"]. "</a></b></p2><br><p3><b>Duration : </b>".$row["Duration"]." Mins</p3> &nbsp; <p3><b> Views : </b> ".$row["views"]."</p3><br><div><p3><b>Description :</b>".$row["descrip"]."</p3></div><br><p5> By ".$row["director"]."</p5><br>"; 


    } else { 
     echo "0 results"; 
    } 

    $conn->close(); 
?> 

</div> 

PHP和HTML都在同一個文件,是的index.php

+0

你是如何提交表單? –

回答

1
$q = $_GET['q']; 
     ^

相比之下,與

<form action="index.php" method="post" > 
           ^

而你自己也會GET你的答案。

+0

我不明白你在說什麼 –

+0

你正在發佈表單。所以你應該從'$ _POST'中選擇值,而不是'$ _GET' –

+0

我試過POST仍然不工作:/ –

-1

的問題是,表單使用POST,而你正在閱讀的GET在PHP

要麼改變

<form method="post" action = ""> 

<form method="get" action = ""> 

或更改此

$q = $_POST['q']; 

對此

$q = $_GET['q']; 
+0

爲什麼用逗號? 「DESC」和「ASC」不是列。 –

+0

答覆已更新,@Rene – mynawaz

+0

很好。刪除downvote。 –

0

在窗體中添加輸入類型"submit"

PHP和HTML在量上的index.php相同的文件,在這種情況下離開action = ""空:

<form method="post" action = "">     
    <select name="q">     
     <option value="DESC" name="DESC">High views</option>  
     <option value="ASC" name="ASC">Low views</option>     
    </select> 
    <input type = "submit" value = "Submit">       
</form> 

接下來的事情,變化:

$q = $_GET['q']; 

這樣:

$q = $_POST['q']; 

由於您使用的是method = "POST"在你的形式,見下圖:

<form method="post" action = ""> 
0

您是通過POST從提交併獲得通過數據獲取

試試這個

<?php 

    $servername = "localhost"; 
    $username = "root"; 
    $password = ""; 
    $dbname = "movie_db"; 
    $q = $_POST['q']; 

// Create connection 
    $conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

    $sql = "SELECT `title`, `poster`, `descrip`, `movie` ,`Duration`, `views`,`director` FROM `movie_db` ORDER BY `views` ".$q ; 
    $result = $conn->query($sql); 

    if ($result->num_rows > 0) { 
     echo "<p1>"; 
    // output data of each row 
     while($row = $result->fetch_assoc()) 
     echo " <div class=\"imgc\"><a href=".$row["movie"]."><img src =" . $row["poster"]. "></a></div></p1><p2><b><a href=" .$row["movie"].">" . $row["title"]. "</a></b></p2><br><p3><b>Duration : </b>".$row["Duration"]." Mins</p3> &nbsp; <p3><b> Views : </b> ".$row["views"]."</p3><br><div><p3><b>Description :</b>".$row["descrip"]."</p3></div><br><p5> By ".$row["director"]."</p5><br>"; 


    } else { 
     echo "0 results"; 
    } 

    $conn->close(); 
?> 

</div> 
相關問題