通过选择下拉列表过滤mysql结果

时间:2013-03-10 13:59:46

标签: php mysql

我是StackOverflow的新成员,虽然我已经使用该网站很长一段时间,但这是我第一次发帖提问,希望有人能够帮助我。我首先要说的是我对PHP和MySQL的了解是基本的,但我认为我想要做的并不是太复杂,所以希望我不会要求太多。我做了很多先前的研究,但我找不到正确的答案。

简而言之,这就是我要做的事情:

我有一个html表单,在提交时将数据写入数据库,然后在单独的html页面上发布表。每次成功提交都会生成并发布一个新表,而旧表会被推到下面。这一切都很好,我也实现了分页,每页只能看到5个表。

我希望能够做的是允许人们仅根据特定条件查看/显示结果(表格),在本例中为“评级”,方法是从页面上的下拉列表中选择评级表格发布的地方。评级是我的表单中的一个字段,它被提交到数据库,然后在表中的一行中发布。

以下是发布表格的代码。在此先感谢您的帮助!

<?php
include('dbconnect.php'); 

mysql_select_db("vtracker", $con);
$result  = mysql_query("SELECT * FROM userdata");
$age = "Age:";
$rating = "Rating:";
$country = "From:";
$name = "Name:";

        while($row = mysql_fetch_array($result))
        {

                        echo "<table id='mft_table' cellspacing='0'>";
                        echo "<tbody>";
                        echo "<tr>";
                        echo "<td class='row1'>" .$name . " " . $row['personsname'] . "</td>";
                        echo "<td rowspan='4'>";
                        echo "<div class='mft_column'>" . $row['mft'] . "</div>";
                        echo "</td>";
                        echo "</tr>";
                        echo "<tr>";
                        echo "<td class='row2'>" . $country . " " . $row['nationality'] . "</td>";
                        echo "</tr>";
                        echo "<tr>";
                        echo "<td class='row3'>" . $age . " " . $row['personsage'] . "</td>";
                        echo "</tr>";
                        echo "<tr>";
                        echo "<td class='row4'>" . $rating . " " . $row['rating'] . "</td>";
                        echo "</tr>";
                        echo "</tbody>";
                        echo "<br>";
                        echo "</table>"; 

        }
    ?>

3 个答案:

答案 0 :(得分:1)

对于true和false使用都可以在代码中添加:

if($_POST['rating_dropdown']!='')
{
    $temp_rating = $_POST['rating_dropdown'];
    $query=mysql_query("SELECT * FROM userdata WHERE rating = '$temp_rating'");
}
else
{
    $query=mysql_query("SELECT * FROM userdata");
}

答案 1 :(得分:0)

Dunno如果这样,它只是一个必要条件。哈哈。 它将查看评级是否为真(非空),如果它是真的,它将回显结果。

while($row = mysql_fetch_array($result))
{
if ($rating)
                echo "<table id='mft_table' cellspacing='0'>";
                echo "<tbody>";
                echo "<tr>";
                echo "<td class='row1'>" .$name . " " . $row['personsname'] . "</td>";
                echo "<td rowspan='4'>";
                echo "<div class='mft_column'>" . $row['mft'] . "</div>";
                echo "</td>";
                echo "</tr>";
                echo "<tr>";
                echo "<td class='row2'>" . $country . " " . $row['nationality'] . "</td>";
                echo "</tr>";
                echo "<tr>";
                echo "<td class='row3'>" . $age . " " . $row['personsage'] . "</td>";
                echo "</tr>";
                echo "<tr>";
                echo "<td class='row4'>" . $rating . " " . $row['rating'] . "</td>";
                echo "</tr>";
                echo "</tbody>";
                echo "<br>";
                echo "</table>"; 
}

}

答案 2 :(得分:0)

选择下拉列表并将其发布到您的显示页面后,请使用以下代码:

$temp_rating = $_POST['rating_dropdown'];
mysql_query("SELECT * FROM userdata WHERE rating = '$temp_rating'");

但请记住,您应该使用PDO或mysqli扩展,而不是mysql扩展。根据PHP的网站:

  

自PHP 5.5.0起,此扩展程序已弃用,并将在中删除   未来。相反,应该使用MySQLi或PDO_MySQL扩展。   另请参阅MySQL:选择API指南和相关常见问题解答以获取更多信息   信息。