mysql_query结果的分页形成两个数据库

时间:2013-02-08 14:33:06

标签: php mysql

我有两个db我必须搜索;结果最终应该在一个分页表中,每个页面有5行,每个6个单元格。我构建了最后的页面,最后给出了两个结果:$ retval1和$ retval2

 mysql_select_db('DEB' , $con);                         
 $search1 = "SELECT Attestation
    FROM Words
    WHERE BINARY Word = '$target' ";
 $retval1 = mysql_query($search1, $con);               
 $rows1 = mysql_num_rows($retval1);


 mysql_select_db('DEM', $con);
 $search2 = "SELECT Attestation
    FROM Words
    WHERE BINARY Word = '$target' ";
$retval2 = mysql_query($search2, $con);
$rows2 = mysql_num_rows($retval2);

$rows = ($rows1 + $rows2);                           
$rowsperpage = 30;
$totalpages = ceil($rows / $rowsperpage);

if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
// cast var as int
$currentpage = (int) $_GET['currentpage'];
} else {
// default page num
$currentpage = 1;
} // end if

// if current page is greater than total pages...
if ($currentpage > $totalpages) {
// set current page to last page
$currentpage = $totalpages;    
} // end if
// if current page is less than first page...
if ($currentpage < 1) {
// set current page to first page
$currentpage = 1;
} // end if

// the offset of the list, based on current page 
$offset = ($currentpage - 1) * $rowsperpage;


mysql_select_db('DEB' , $con);
$search1 = "SELECT Attestation
    FROM Words
    WHERE BINARY Word = '$target'
    LIMIT $offset, $rowsperpage";        
$retval1 = mysql_query($search1, $con);

mysql_select_db('DEM', $con);
$search2 = "SELECT Attestation
    FROM Words
    WHERE BINARY Word = '$target'
    LIMIT $offset, $rowsperpage ";        
$retval2 = mysql_query($search2, $con);

之后我创建了一个表并将结果放在其中:

 <table >
 <?
 $i = -1;
 while($row1 = mysql_fetch_assoc($retval1)){
 $i++;
 if($i/6== intval($i/6)){
 ?>
 <tr>
 <?
 }
 ?>
 <td>
 <?
 // Now echo the db row   
 echo $row1['Attestation'];
 ?>
 </td>
 <?
 if(($i+1)/6 == intval(($i+1)/6)){
 ?>
 </tr>
 <?
 }
 }

 $i = -1;
 while($row2 = mysql_fetch_assoc($retval2)){
 $i++;
 if($i/6== intval($i/6)){
 ?>
 <tr>
 <?
 }
 ?>
 <td>
 <?
 // Now echo the db row   
 echo $row2['Attestation'];
 ?>
 </td>
 <?
 if(($i+1)/6 == intval(($i+1)/6)){
 ?>
 </tr>
 <?
 }
 }
 }?>
 </table>

这与一个数据库完美配合,但有两个布局无法正常工作。假设我在第一次搜索时有60个结​​果,在第二次搜索时有50个结果。布局将在第一页上给我30个结果,第一次搜索+第二次30,然后是下一页30次搜索结果+第二次搜索20次。 我需要的是第一页包含第一次搜索的30个结果,第2页包含第一次搜索的30个结果,第三页包含第二次搜索的结果,依此类推

我想在进行分页之前我必须加入两个结果。但UNION似乎没有用,因为我有两个不同的数据库。

欢迎任何想法。

0 个答案:

没有答案