2015-09-25 154 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> 
相关问题