PHP过滤器下拉框不显示未设置isset的结果


PHP Filter Drop Down Boxes not showing results where isset is not set

嗨,我正试图从下拉框中构建一个过滤器,以选择从mysql数据库返回的结果。

一旦我选择了我想要的值,然后单击提交按钮,数据库结果就会被正确过滤,并且只显示由我的选择确定的结果。

我遇到的问题是,当我第一次加载页面时,没有选择任何值并点击提交,什么都不会显示。

下面是下拉框的代码。

<form name="form1" method="post" action="visitor_list7.php">
<?php 
if (isset($_POST['pagination']) && $_POST['pagination'] != "pagination") {
    $select1 = $_POST['pagination'];
}
?>
<select name="pagination">
<?php
// Get records from database (table "name_list").
$list1=mysql_query("select * from pagination_drop_down order by id asc");
// Show records by while loop.
while($row_list1=mysql_fetch_assoc($list1)){
    $pagination = $_POST['pagination']; ?>
    <option value="<?php echo $row_list1['value']; ?>" <?php if($row_list1['value']==$select1){ echo "selected"; } ?>><?php echo $row_list1['title']; ?></option>       
    <?php       
}
?>
</select>

<?php 
if (isset($_POST['returning']) && $_POST['returning'] != "returning") {
    $select2 = $_POST['returning'];
}
?>
<select name="returning">
<?php
// Get records from database (table "name_list").
$list2=mysql_query("select * from repeater_drop_down order by id DESC");
// Show records by while loop.
while($row_list2=mysql_fetch_assoc($list2)){
    $returning = $_POST['returning']; ?>
    <option value="<?php echo $row_list2['value']; ?>" <?php if($row_list2['value']==$select2){ echo "selected"; } ?>><?php echo $row_list2['title']; ?></option>       
<?php       
}
?>
</select>

<?php 
if (isset($_POST['referrer']) && $_POST['referrer'] != "referrer") {
    $select = $_POST['referrer'];
}
?>
<select name="referrer">
    <option value="">Referrer</option>
    <?php
    // Get records from database (table "name_list").
    $list=mysql_query("select DISTINCT referrer from masterip_details WHERE country_code='GB' AND TRIM(IFNULL(referrer,'')) <> '' order by referrer DESC");
    // Show records by while loop.
    while($row_list=mysql_fetch_assoc($list)){
        $referrer = $_POST['referrer']; ?>
        <option value="<?php echo $row_list['referrer']; ?>" <?php if($row_list['referrer']==$select){ echo "selected"; } ?>><?php echo $row_list['referrer']; ?></option>      
    <?php       
    }
    ?>
</select>

<?php 
if (isset($_POST['sortby']) && $_POST['sortby'] != "sortby") {
    $select3 = $_POST['sortby'];
}
?>
<select name="sortby">
    <?php
    // Get records from database (table "name_list").
    $list4=mysql_query("select * from sortby_drop_down order by id asc");
    // Show records by while loop.
    while($row_list4=mysql_fetch_assoc($list4)){
        $sortby = $_POST['sortby']; ?>
        <option value="<?php echo $row_list4['value']; ?>" <?php if($row_list4['value']==$select3){ echo "selected"; } ?>><?php echo $row_list4['title']; ?></option>       
    <?php       
    }
    ?>
</select>                                       

<input type="submit" name="button" id="button" value="Submit">
</form>

这是我的elseif语句的代码,它决定运行哪个查询。

$pagination = $_POST['pagination'];
$returning = $_POST['returning'];
$referrer = $_POST['referrer'];
$sortby = $_POST['sortby']; 
$tableName="masterip_details";      
$targetpage = "visitor_list6.php";

if(isset($_GET['pagination'])) {
    $limit = "$pagination"; 
} else {
    $limit = $pagination; 
}
//SELECT FROM THE MYSQL DATABASE IF THE $RETUTNING AND $REFERRING VARIABLES ARE SELECTED INT HE DROP DOWN BOXES //
if (isset($returning, $referrer)){
    $query = "SELECT COUNT(*) as num FROM $tableName Where client_id ='$client_id' AND country_code ='GB' AND type='1' AND repeater='$returning' AND referrer ='$referrer'";
    $total_pages = mysql_fetch_array(mysql_query($query));
    $total_pages = $total_pages[num];
    $stages = 3;
    $page = mysql_escape_string($_GET['page']);
    if($page){
        $start = ($page - 1) * $limit; 
    }else{
        $start = 0; 
    }   

    $query1 = "SELECT * FROM $tableName Where client_id ='$client_id' AND country_code ='GB' AND type='1'  AND repeater='$returning' AND referrer ='$referrer' Order by $sortby DESC LIMIT $start, $limit";
    $result = mysql_query($query1);
    echo "variables all set";
    echo "$returning";
    echo "$referrer";
}
//SELECT FROM THE DATABASE IF ONLY THE RETURNING DROP DOWN BOX VARIABLE IS SET //
elseif (isset($returning)){
    $query = "SELECT COUNT(*) as num FROM $tableName Where client_id ='$client_id' AND country_code ='GB' AND type='1' AND repeater='$returning' ";
    $total_pages = mysql_fetch_array(mysql_query($query));
    $total_pages = $total_pages[num];
    $stages = 3;
    $page = mysql_escape_string($_GET['page']);
    if($page){
        $start = ($page - 1) * $limit; 
    }else{
        $start = 0; 
    }   
    // Get page data
    $query1 = "SELECT * FROM $tableName Where client_id ='$client_id' AND country_code ='GB' AND type='1' AND repeater='$returning'  Order by $sortby DESC LIMIT $start, $limit";
    $result = mysql_query($query1);
    echo " returning variables set";
}

// SELECT FROM THE DATABASE IF THE $REFERRER VARIABLE IS SET FROM THE DROP DOWN BOXES
elseif (isset($referrer)){
    $query = "SELECT COUNT(*) as num FROM $tableName Where client_id ='$client_id' AND country_code ='GB' AND type='1' AND referrer ='$referrer'";
    $total_pages = mysql_fetch_array(mysql_query($query));
    $total_pages = $total_pages[num];
    $stages = 3;
    $page = mysql_escape_string($_GET['page']);
    if($page){
        $start = ($page - 1) * $limit; 
    }else{
        $start = 0; 
    }   
    // Get page data
    $query1 = "SELECT * FROM $tableName Where client_id ='$client_id' AND country_code ='GB' AND type='1' AND referrer ='$referrer' Order by $sortby DESC LIMIT $start, $limit";
    $result = mysql_query($query1);
    echo "$client_id";
    echo " referrer variables set";
}
else {
    //SELECT FROM THE DATABAS IF NO VARIABLES ARE SET FROM THE DROP DOWN BOXES 
    $query = "SELECT COUNT(*) as num FROM $tableName Where client_id ='$client_id' AND country_code ='GB' AND type='1'";
    $total_pages = mysql_fetch_array(mysql_query($query));
    $total_pages = $total_pages[num];
    $stages = 3;
    $page = mysql_escape_string($_GET['page']);
    if($page){
        $start = ($page - 1) * $limit; 
    }else{
        $start = 0; 
    }   
    // Get page data
    $query1 = "SELECT * FROM $tableName Where client_id ='$client_id' AND country_code ='GB' AND type='1'  Order by timedate DESC LIMIT $start, $limit";
    $result = mysql_query($query1);
    echo "$client_id";
    echo " no variables set";
}

我以前从未这样做过,仍然不确定这是否是正确的方式,因此任何建议或指导都将不胜感激。

已解决,

我在isset之外添加了变量分页,而它本应是一个值

错误的旧代码

if(isset($_GET['pagination'])) {
$limit = "$pagination"; 
 } else {
$limit = $pagination; 
} 

新代码完美运行

if(isset($_GET['pagination'])) {
$limit = "$pagination"; 
} else {
$limit = 30; 
}