2012-06-07 5 views
0

mysql 데이터베이스가 있고 변수를 입력하기 위해 find.php라는 다중 변수 검색 페이지를 사용합니다. 결과가 올바르게 나오고 (개수가 정확하고 결과의 1 페이지도 마찬가지입니다.)하지만 다음 페이지로 이동하려고하면 오류가납니다. :: 정의되지 않은 색인 : term1 행 60 :: 정의되지 않은 색인 : term2 행 61 에. Search2.php 아래 설정과 같이다중 변수 쿼리의 결과 매기기 mysql 데이터베이스

<?php 

include "db.inc.php"; 

if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; }; 
$start_from = ($page-1) * 15; 

$term1 = $_POST['term1']; 
$term2 = $_POST['term2']; 
$term3 = $_POST['term3']; 
$term4 = $_POST['term4']; 

$sql ="SELECT * FROM cdrequests WHERE pname LIKE '%$term1%' AND date LIKE '%$term2%' AND date LIKE '%$term3%' AND dept LIKE '%$term4%' LIMIT $start_from, 15"; 


$rs_result = mysql_query ($sql); 
$num_rows = mysql_num_rows($rs_result); 
$query = mysql_query("SELECT * FROM cdrequests WHERE pname LIKE '%$term1%' AND date LIKE '%$term2%' AND date LIKE '%$term3%' AND dept LIKE '%$term4%'"); 
$number=mysql_num_rows($query); 
print "<font size=\"5\" color=white><b>CD Requests</b></font> </P>"; 
?> 

<?php 

$sql = "SELECT COUNT(id) FROM cdrequests WHERE pname LIKE '%$term1%' AND date LIKE '%$term2%' AND date LIKE '%$term3%' AND dept LIKE '%$term4%'"; 
$rs_result = mysql_query($sql); 
$row = mysql_fetch_row($rs_result); 
$total_records = $row[0]; 
$total_pages = ceil($total_records/15); 


/****** build the pagination links ******/ 
// range of num links to show 
$range = 3; 



// if not on page 1, don't show back links 
if ($page > 1) { 
    // show << link to go back to page 1 
    echo " <a href='search2.php?page=1'><b>First</b></a> "; 
    // get previous page num 
    $prev = $page - 1; 
    // show < link to go back to 1 page 
    echo " <a href='search2.php?page=$prev'><b>&laquo;</b></a> "; 
} // end if 



// loop to show links to range of pages around current page 
for ($x = ($page - $range); $x < (($page + $range) + 1); $x++) { 
    // if it's a valid page number... 
    if (($x > 0) && ($x <= $total_pages)) { 
     // if we're on current page... 
     if ($x == $page) { 
     // 'highlight' it but don't make a link 
     echo " <font size='5' color=yellow><b> $x </b></font> "; 
     // if not current page... 
     } else { 
     // make it a link 
     echo " <a href='search2.php?page=$x'>$x</a> "; 
     } // end else 
    } // end if 
} // end for 


// if not on last page, show forward and last page links   
if ($page != $total_pages) { 
    // get next page 
    $next = $page + 1; 
    // echo forward link for next page 
    echo " <a href='search2.php?page=$next'><b>&raquo;</b></a> "; 
    // echo forward link for lastpage 
    echo " <a href='search2.php?page=$total_pages'><b>Last</b></a> "; 
} // end if 
/****** end build pagination links ******/ 

echo '</table>'; 

?> 

은 어떻게 든 2 페이지로 이동 매김 구조는 변수 기간 1 용어 2 등 어떤 생각의 적절한 정보를 통해 수행하는 데 실패/감사 도움

+0

www.petefreitag.com/item/451.cfm – Yang

답변

0

페이지 링크가 term1, term2 등을 서버에 다시 전달하지 않습니다. 또한 링크에서 전달할 경우 $_REQUEST['term1'], $_REQUEST['term2'] 등을 확인하여 GET 및 POST 요청을 모두 처리해야합니다.

링크의 코드는 다음과 같아야합니다

echo " <a href='search2.php?page=$next". 
    "&amp;term1=".urlencode($term1). 
    "&amp;term2=".urlencode($term2). 
    "&amp;term3=".urlencode($term3). 
    "&amp;term4=".urlencode($term4)"'><b>&raquo;</b></a> "; 

당신이 그때는 아마 자바 스크립트를 사용하여 링크를 클릭하면 POST 요청을 보내는 고려해야 서버에 전달하는 너무 많은 매개 변수가있는 경우.

+0

은 의미가 있습니다. 그래서 나는 멍청한 탓으로 $ _REQUEST [ 'term1'] 등을 어디에 넣을까요? 감사합니다 – user1356282

+0

::: $ term1 = $ _ REQUEST [ 'term'] 대신 – user1356282

+0

감사합니다. 그렇다면이 섹션을 코드에 구현하여 조건이 통과되도록하려면 어떻게해야합니까? :::: "$ _REQUEST [ 'term1'], $ _REQUEST [ 'term2'] 등을 확인해야합니다. – user1356282