您好我正在尝试从下拉框中构建一个过滤器,以选择从 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";
}
我以前从未这样做过,但仍然不确定这是否是正确的方法,因此任何建议或指导将不胜感激。