douhunkuang8955 2013-07-19 06:46
浏览 30

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

Hi I am trying to build a filter from drop down boxes to select which results are returned from a mysql database.

Once i select the values that i want and then click the submit button the database results are filtered correctly and shows only the results that are determined by my selection.

The problem i am having is that when i load the page for the first time with out selecting any values and clicking on submit nothing is shown.

below is the code for the drop down boxes.

<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>

And here is the code for my elseif statements which determine which query to run.

$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";
}

I have never done this before and still not sure if this is the correct way to do this any so any sugestions or guidance would be appreciated.

  • 写回答

1条回答 默认 最新

  • dongxidui1227 2013-07-19 09:57
    关注

    Solved,

    I add the variable pagination outside of the isset when it should have been a value

    OLD CODE WITH MISTAKE

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

    NEW CODE WORKING PERFECTLY

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

报告相同问题?

悬赏问题

  • ¥15 使用ESP8266连接阿里云出现问题
  • ¥15 被蓝屏搞吐了,有偿求帮解答,Ai回复直接拉黑
  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并