我在php5编码分页时遇到错误?

时间:2010-09-27 09:54:51

标签: php

我正在编写分页代码&我收到了一个错误。 这是我的代码:

<?php 
mysql_connect("localhost", "root", "") or die(mysql_error()); 
mysql_select_db("Admin") or die(mysql_error()); 

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



$start_from = ($page-1) * 2; 
$sql = "SELECT * FROM events ORDER BY event ASC LIMIT $start_from, 2"; 
$result = mysql_query ($sql) or die(mysql_error()); 
$num=mysql_numrows($result);
$x=0;
?> 
<table>
<tr><td>Event</td><td>Types</td></tr>
<?php 
while ($x<$num) {
$row1 = mysql_result($result,$x,'event');
$row2 = mysql_result($result,$x,'types'); 
?> 
            <tr>
            <td><? echo $row1; ?></td>
            <td><? echo $row2; ?></td>
            </tr>
<?php 
$x++;
} 
?> 
</table>
<?php 
$sql = "SELECT COUNT(event) FROM events"; 
$result = mysql_query($sql) or die(mysql_error()); 
$row = mysql_fetch_row($result); 
$total_records = $row[0]; 
$total_pages = ceil($total_records / 2); 

for ($i=1; $i<=$total_pages; $i++) { 
            echo "<a href='pagination.php?page=".$i."'>".$i."</a> "; 
}

?>

现在我收到了一个错误。

  object not found

2 个答案:

答案 0 :(得分:2)

mysql_query返回false - 即您的查询失败,并且您向mysql_num_rows传递了错误的参数。我认为你在SQL查询中的表名中有一个拼写错误,它应该是events。通常,您应该检查查询是否成功:

$result = mysql_query ($sql) or trigger_error(mysql_error().": ".$sql);

答案 1 :(得分:2)

请注意,您应该使用更加整洁的while ($x<$num)来代替可怕的while($row=mysql_fetch_array($res)) 所以,做吧

<?
$per_page = 2;
$page = 1;
if (isset($_GET['page'])) $page = $_GET['page'];
$start_from = ($page-1) * $per_page; 
$sql = "SELECT * FROM events ORDER BY event ASC LIMIT $start_from, $per_page"; 
$res = mysql_query ($sql) or trigger_error(mysql_error().": ".$sql);
?> 
<table>
  <tr><td>Event</td><td>Types</td></tr>
<?php 
while($row=mysql_fetch_array($res)) {
?> 
  <tr>
    <td><? echo $row['event'] ?></td>
    <td><? echo $row['types'] ?></td>
  </tr>
<?php 
} 
?> 
</table>
<?php 
$sql = "SELECT COUNT(event) FROM events"; 
$res = mysql_query ($sql) or trigger_error(mysql_error().": ".$sql);
$row = mysql_fetch_row($res); 
$total_records = $row[0]; 
$total_pages = ceil($total_records / $per_page); 

for ($i=1; $i<=$total_pages; $i++) { 
  echo "<a href='pagination.php?page=".$i."'>".$i."</a> "; 
}
?>