PHP mySQL选择通过html选择

时间:2015-05-16 11:48:14

标签: php html mysql

我正在尝试根据HTML选择框的帖子值从表中进行选择。我根本没有得到任何结果,我正在回应帖子的价值没有问题。该语句可以自行运行,但是当我使用select表单填充它时则不会。这只是我的测试,我将在下拉框中添加其他选项。

<?php
if(isset($_POST['value'])) {
if($_POST['value'] == 'Militaria') {
    $query = "SELECT * FROM listings WHERE category1=Militaria";  
}
else {  
    // query to get all records  
    $query = "SELECT * FROM listings";  
}  
}
$sql = mysql_query($query);  
while ($row = mysql_fetch_array($query)){ 
    echo 'Description:' . $row['description'];
}
mysql_close($con);    
?>

这是我正在使用的html表单,任何人都可以告诉我哪里出错了,我应该采用不同的方式等等,我是php新手?谢谢!

<form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post' name='form_filter' > 
<select name="value"> 
    <option value="all">All</option> 
    <option value="Militaria">Militaria</option>
</select> 
<br /> 
<input type='submit' value = 'Filter'> 
</form>

3 个答案:

答案 0 :(得分:2)

mysql_fetch_array()应该将resorce作为参数接收。试试mysql_fetch_array($sql)

答案 1 :(得分:0)

引用&#39; Militaria&#39;和mysql_fetch_array($ sql)

<?php

        if(isset($_POST['value'])) {
            if($_POST['value'] == 'Militaria') {
                $query = "SELECT * FROM listings WHERE category1='Militaria'";  
            }
            else {  
                // query to get all records  
                $query = "SELECT * FROM listings";  
            }  

            $sql = mysql_query($sql);  
            while ($row = mysql_fetch_array($sql)){ 
                echo 'Description:' . $row['description'];
            }
            mysql_close($con); 
        }
    ?>

    <form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post' name='form_filter' > 
    <select name="value"> 
        <option value="all">All</option> 
        <option value="Militaria">Militaria</option>
    </select> 
    <br /> 
    <input type='submit' value = 'Filter'> 
    </form>

答案 2 :(得分:0)

你的php代码中有两个错误。

第一:引用军事报道。查询应为$query = "SELECT * FROM listings WHERE category1='Militaria'";

第二名:mysql_fetch_array接受已执行查询的结果作为参数。它应该是$row = mysql_fetch_array($sql)

最终代码:

<?php
if(isset($_POST['value'])) {
if($_POST['value'] == 'Militaria') {
    $query = "SELECT * FROM listings WHERE category1 = 'Militaria'";  
}
else {  
    // query to get all records  
    $query = "SELECT * FROM listings";  
}  
}
$sql = mysql_query($query);  
while ($row = mysql_fetch_array($sql)){ 
    echo 'Description:' . $row['description'];
}
mysql_close($con);    
?>