簡體   English   中英

動態表中有多個搜索條件PHP結果

[英]multiple search criteria PHP results in dynamic table

希望有人可以提供幫助,這對我來說是個新手,可以教自己更多的娛樂性,但是我似乎無法使此頁面正常工作。 我以前使用過一個搜索過濾器,但是當我添加更多過濾器時,它似乎根本沒有過濾。 如果未添加任何搜索,嘗試使頁面顯示所有記錄,則用戶可以搜索1個或多個過濾器,並且將顯示相關記錄。 3個過濾器是一個日期范圍,每個范圍都包含來回文本字段...

我的代碼如下。

    <?php require_once('Connections/tidentchase.php'); ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    {
    if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
    }
    $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

    switch ($theType) {
    case "text":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;    
    case "long":
    case "int":
    $theValue = ($theValue != "") ? intval($theValue) : "NULL";
    break;
    case "double":
    $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
    break;
    case "date":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;
    case "defined":
    $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
    break;
    }  
    return $theValue;
    }
    }
    $maxRows_Recordset1 = 10;
    $pageNum_Recordset1 = 0;

    mysql_select_db($database_tidentchase, $tidentchase);
    if (isset($_GET['pageNum_Recordset1'])) {
    $pageNum_Recordset1 = $_GET['pageNum_Recordset1'];
    }
    $startRow_Recordset1 = $pageNum_Recordset1 * $maxRows_Recordset1;

    $newdatefrom_Recordset1 = "-1";
    if (isset($_GET['newdatefrom'])) 
    {
    $newdatefrom_Recordset1 = $_GET['newdatefrom'];
    }
    $newdateto_Recordset1 = "-1";
    if (isset($_GET['newdateto'])) 
    {
    $newdateto_Recordset1 = $_GET['newdateto'];
    }
    $closeddatefrom_Recordset1 = "-1";
    if (isset($_GET['closeddatefrom']))  
    {
    $closeddatefrom_Recordset1 = $_GET['closeddatefrom'];
    }
    $closeddateto_Recordset1 = "-1";
    if (isset($_GET['closeddateto'])) 
    {
    $closeddateto_Recordset1 = $_GET['closeddateto'];
    }
    $cancelleddatefrom_Recordset1 = "-1";
    if (isset($_GET['cancelleddatefrom'])) 
    {
    $cancelleddatefrom_Recordset1 = $_GET['cancelleddatefrom'];
    }
    $cancelled_Recordset1 = "-1";
    if (isset($_GET['cancelled'])) 
    {
    $cancelled_Recordset1 = $_GET['cancelled'];
    }
    $closed_Recordset1 = "-1";
    if (isset($_GET['closed'])) 
    {
    $closed_Recordset1 = $_GET['closed'];
    }
    $fileno_Recordset1 = "-1";
    if (isset($_GET['fileno'])) 
    {
    $fileno_Recordset1 = $_GET['fileno'];
    }
    $borrower_Recordset1 = "-1";
    if (isset($_GET['borrower'])) 
    {
    $borrower_Recordset1 = $_GET['borrower'];
    }
    $cancelleddateto_Recordset1 = "-1";
    if (isset($_GET['cancelleddateto']))  
    {     // SHOW SEARCH CRITERIA
$cancelleddateto_Recordset1 = $_GET['cancelleddateto'];
$query_Recordset1 = sprintf("SELECT fileno, dateopen, borrower, cancelled,  datecancelled, closed, dateclosed FROM filedata WHERE filedata.fileno = ".$fileno_Recordset1." AND filedata.borrower = ".$borrower_Recordset1." AND filedate_closed = ".$closed_Recordset1." AND filedata_cancelled = ".$cancelled_Recordset1." AND filedata.dateopen BETWEEN ".$newdatefrom_Recordset1." AND ".$newdateto_Recordset1."  AND filedata.datecancelled BETWEEN ".$cancelleddatefrom_Recordset1." AND ".$cancelleddateto_Recordset1."  AND filedata.dateclosed BETWEEN ".$closeddatefrom_Recordset1." AND ".$closeddateto_Recordset1."", GetSQLValueString($newdatefrom_Recordset1, "date"),GetSQLValueString($newdateto_Recordset1, "date"),GetSQLValueString($cancelleddatefrom_Recordset1, "date"),GetSQLValueString($cancelleddateto_Recordset1, "date"),GetSQLValueString($closeddatefrom_Recordset1, "date"),GetSQLValueString($closeddateto_Recordset1, "date"));
    }
    else   // SHOW ALL RECORDS
    {
$query_Recordset1 = "SELECT fileno, dateopen, borrower, cancelled, datecancelled, closed, dateclosed FROM filedata";
    }
    $query_limit_Recordset1 = sprintf("%s LIMIT %d, %d", $query_Recordset1,    $startRow_Recordset1, $maxRows_Recordset1);
    $Recordset1 = mysql_query($query_limit_Recordset1, $tidentchase) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);



    if (isset($_GET['totalRows_Recordset1'])) {
    $totalRows_Recordset1 = $_GET['totalRows_Recordset1'];
    } 
    else 
    {
    $all_Recordset1 = mysql_query($query_Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($all_Recordset1);
    }
    $totalPages_Recordset1 = ceil($totalRows_Recordset1/$maxRows_Recordset1)-1;
    ?>
    <!doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>All Files</title>
    <link href="stylesheet.css" rel="stylesheet" type="text/css">
    </head>
    <body>
    <H1>TRIDENTCHASEDASHBOARD</H1>
    <div>   
<ul>        
    <li><a href="home.php">HOME</a></li>    
</ul>
    </div>
    <div>
    <P>ALL FILES</P>
    <form name="form1" method="post" action="">
    <label for="fileno">File Number</label>
    <input type="text" name="fileno" id="fileno">
    <label for="borrower">Borrower</label>
    <input type="text" name="borrower" id="borrower">
    <input type="checkbox" name="cancelled" id="cancelled">
    <label for="cancelled">Cancelled</label>
    <input type="checkbox" name="closed" id="closed">
    <label for="closed">Closed</label>
    <label for="newdatefrom">New Date From</label>
    <input type="text" name="newdatefrom" id="newdatefrom">
    <label for="newdateto">New Date to</label>
    <input type="text" name="newdateto" id="newdateto">
    <label for="closeddatefrom">Closed Date From</label>
    <input type="text" name="closeddatefrom" id="closeddatefrom">
    <label for="closeddateto">Closed Date To</label>
    <input type="text" name="closeddateto" id="closeddateto">
    <label for="cancelleddatefrom">Cancelled date from</label>
    <input type="text" name="cancelleddatefrom" id="cancelleddatefrom">
    <label for="cancelleddateto">Cancelled Date To</label>
    <input type="text" name="cancelleddateto" id="cancelleddateto">
    <input type="submit" name="search" id="search" value="Submit">
    </form>
    </div>
    <p>To update any file click on the file number below</p>
    <table border="2" cellpadding="2" cellspacing="2">
    <tr>
    <td>fileno</td>
    <td>dateopen</td>
    <td>borrower</td>
    </tr>
    <?php do { ?>
    <tr>
    <td><?php echo $row_Recordset1['fileno']; ?></td>
    <td><?php echo $row_Recordset1['dateopen']; ?></td>
    <td><?php echo $row_Recordset1['borrower']; ?></td>
    </tr>
    <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
    </table>
    </body>
    </html>
    <?php 
    mysql_free_result($Recordset1);

    mysql_free_result($allfiles);
    ?>
    </html>

我完全錯了,或者我接近了。

提前致謝!

在處理輸入字段時,需要構建sql語句。 代替這個:

$newdatefrom_Recordset1 = "-1";
if (isset($_GET['newdatefrom'])) 
{
    $newdatefrom_Recordset1 = $_GET['newdatefrom'];
}

您將需要執行以下操作:

$fld = ""; $whr = ""; // initialise variables
$newdatefrom_Recordset1 = "";
if (isset($_GET['newdatefrom'])) {
  if ( $fld != '' ) $fld .= ",";     //--- build field list 
  if ( $whr != '' ) $whr .= " or ";  //--- build sql where joiner
  $fld .= 'dateopen';
  $whr .= "dateopen='".$_GET['newdatefrom']."'";
}
//--- repeat for each field you want to search on
//--- apply any rules i.e. date range and values etc
//--- when ready to run query then
$qry = "SELECT ".$fld." WHERE ".$whr;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM