一些代码工作正常,有时在mysql语句中出现致命错误

时间:2011-11-01 08:53:40

标签: php mysql

它是php和mysql的分页代码。我在两个页面中包含相同的代码(新闻和用户)代码在新闻中运行良好,在用户页面中代码确实有效,但大多数时候我收到有线错误"Fatal error: SQL in /Applications/MAMP/htdocs/NDFUND/admin/include/page.php on line 6".

任何帮助将不胜感激。代码遵循哪个文件名是page.php这个页面包含2个全局变量,它在news.php和user.php上定义。一个是$ tbl_name,另一个是$ rowsperpage

<?php
require_once('../Connections/ndConn.php'); 


$sql = "SELECT COUNT(*) FROM $tbl_name";
$result = mysql_query($sql, $ndConn) or trigger_error("SQL", E_USER_ERROR);
$r = mysql_fetch_row($result);
$numrows = $r[0];




$totalpages = ceil($numrows / $rowsperpage);


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

$currentpage = 1;
} // end if
if ($currentpage > $totalpages) {
$currentpage = $totalpages;
} 
if ($currentpage < 1) {

$currentpage = 1;
} // end if
$offset = ($currentpage - 1) * $rowsperpage;

$sql = "SELECT * FROM $tbl_name LIMIT $offset, $rowsperpage";
$result = mysql_query($sql, $ndConn) or trigger_error("SQL", E_USER_ERROR);
$range = 2;
if ($currentpage > 1) {

$pagination =  " <a href='{$_SERVER['PHP_SELF']}?currentpage=1'>[ First ]</a> ";

$prevpage = $currentpage - 1;

$pagination .= " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage'>[ < ]</a> ";
} 

 for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {

if (($x > 0) && ($x <= $totalpages)) {

  if ($x == $currentpage) {

     $pagination .= " <span class=\"selected\">[ $x ]</span> ";

  } else {

     $pagination .= " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>[ $x ]</a> ";
   } 
   } 
 } 


if ($currentpage != $totalpages) {

$nextpage = $currentpage + 1;

$pagination .= " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>[ > ]</a> ";

$pagination .= " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>[ Last ]</a>   ";
} 

?>

1 个答案:

答案 0 :(得分:0)

这是您的错误来源:

$result = mysql_query($sql, $ndConn) or trigger_error("SQL", E_USER_ERROR);

所以这是有线的也不奇怪,因为你自己把它放在那里。在您尝试执行的SQL语句中必须存在错误。

只需删除or trigger_error("SQL", E_USER_ERROR)即可显示基本错误,然后您可以解决此错误。

我的猜测是$tbl_name未设置。