Php 如何在不丢失变量值的情况下使用多个表单?

Php 如何在不丢失变量值的情况下使用多个表单?,php,html,mysql,forms,Php,Html,Mysql,Forms,我正在使用PHP为学校制作我的第一个数据库(神奇宝贝数据库),我想如果你能用一个“选项表单”对所有的神奇宝贝进行排序,那就太好了。 现在,我尝试使用多个选项表单,这样您就可以组合不同的选项来获得口袋妖怪的特定列表 例如,如果您选择“type=water”和“sort by name”,您将得到所有water类型的神奇宝贝,按名称排序。我尝试过这样做,但是当我在其他表单中选择一个新选项时,它总是忘记一个表单中变量的值 这是我的代码(非常草率,很抱歉) HTML: 当您选择一个选项时,它将自动提交表

我正在使用PHP为学校制作我的第一个数据库(神奇宝贝数据库),我想如果你能用一个“选项表单”对所有的神奇宝贝进行排序,那就太好了。 现在,我尝试使用多个选项表单,这样您就可以组合不同的选项来获得口袋妖怪的特定列表

例如,如果您选择“type=water”和“sort by name”,您将得到所有water类型的神奇宝贝,按名称排序。我尝试过这样做,但是当我在其他表单中选择一个新选项时,它总是忘记一个表单中变量的值

这是我的代码(非常草率,很抱歉)

HTML:

当您选择一个选项时,它将自动提交表单。 接下来我要做的是确定使用PHP选择了哪个选项:

if (empty( $_POST['sort']))
{ 
    $sort =  'id'; 
}
elseif ( $_POST['sort'] == 'ID' )
{
    $sort = 'id';
}
elseif ( $_POST['sort'] == 'Naam' )
{
    $sort = 'naam, ID'; 
}
elseif ( $_POST['sort'] == 'Soort' )
{
    $sort = 'type, ID';
}

if (empty( $_POST['gen']))
{ 
    $where =  'ID=ID'; 
}
elseif ( $_POST['gen'] == '0' )
{ 
    $where = 'ID=ID';
}
elseif ( $_POST['gen'] == '1' )
{ 
    $where = 'generation = 1';
}
elseif ( $_POST['gen'] == '2' )
{ 
    $where = 'generation = 2'; 
}
elseif ( $_POST['gen'] == '3' )
{ 
    $where = 'generation = 3';
}
elseif ( $_POST['gen'] == '4' )
{ 
    $where = 'generation = 4';
}
elseif ( $_POST['gen'] == '5' )
{ 
    $where = 'generation = 5';
}
elseif ( $_POST['gen'] == '6' )
{ 
    $where = 'generation = 6';
}
elseif ( $_POST['gen'] == '7' )
{ 
    $where = 'generation = 7';
}
最后,我将变量放入mysql的查询中:

mysql_connect("localhost", "root", "usbw");
mysql_select_db("pokemon");

$result = mysql_query("SELECT * FROM pokemon WHERE ($where2) AND ($where) ORDER BY $sort");
while($data = mysql_fetch_assoc($result)) { ........ }

我无法为自己找到修复程序,因此如果有人能帮助我,我将不胜感激。

问题在于您使用了两个表单标记。如果第一个表单发送了其值,则第二个表单将被忽略,反之亦然。因此,将您的输入包装在一个表单中应该可以使其工作


>纳姆
>所有氏族
>第2代
>第4代
>第6代

当您的操作页面相同时,为什么要使用多个表单?
if (empty( $_POST['sort']))
{ 
    $sort =  'id'; 
}
elseif ( $_POST['sort'] == 'ID' )
{
    $sort = 'id';
}
elseif ( $_POST['sort'] == 'Naam' )
{
    $sort = 'naam, ID'; 
}
elseif ( $_POST['sort'] == 'Soort' )
{
    $sort = 'type, ID';
}

if (empty( $_POST['gen']))
{ 
    $where =  'ID=ID'; 
}
elseif ( $_POST['gen'] == '0' )
{ 
    $where = 'ID=ID';
}
elseif ( $_POST['gen'] == '1' )
{ 
    $where = 'generation = 1';
}
elseif ( $_POST['gen'] == '2' )
{ 
    $where = 'generation = 2'; 
}
elseif ( $_POST['gen'] == '3' )
{ 
    $where = 'generation = 3';
}
elseif ( $_POST['gen'] == '4' )
{ 
    $where = 'generation = 4';
}
elseif ( $_POST['gen'] == '5' )
{ 
    $where = 'generation = 5';
}
elseif ( $_POST['gen'] == '6' )
{ 
    $where = 'generation = 6';
}
elseif ( $_POST['gen'] == '7' )
{ 
    $where = 'generation = 7';
}
mysql_connect("localhost", "root", "usbw");
mysql_select_db("pokemon");

$result = mysql_query("SELECT * FROM pokemon WHERE ($where2) AND ($where) ORDER BY $sort");
while($data = mysql_fetch_assoc($result)) { ........ }