2015-09-24 62 views
0

我真的很难在我的下面的代码中找到错误。它似乎所有的代码是正确的,但我每次尝试运行页面时都会出现此警告错误。有没有人对如何解决这个问题有很好的了解?是的,我已经检查了连接,这很好,并且名为event的表与数据库服务器中的event_id一起存在。提前致谢。Mysql_result()期望参数1警告

该代码根据数据库生成记录并根据页码进行分隔。我已经为每页设置了1条记录。

警告:mysql_result()预计参数1是在给定的/Applications/XAMPP/xyz/xyz/xyz/event.php在线路89

<?php 
$link = mysql_connect('localhost', '#', '#'); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
          } 
$per_page = 1; 

$pages_query = mysql_query("SELECT count(event_id) FROM event ORDER BY event_date"); 
$pages = ceil(mysql_result($pages_query, 0)/$per_page); 
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1; 
$start = ($page - 1) * $per_page; 

$query = mysql_query("SELECT * FROM event LIMIT $start, $per_page"); 
         while ($query_row = mysql_fetch_assoc($query)) { 
            $event_name = $query_row['event_name']; 
            $event_info = $query_row['event_info']; 
?> 

89线资源,布尔 是

$pages = ceil(mysql_result($pages_query, 0)/$per_page); 
+1

以上帝的名义,请停止使用_deprecated_ mysql函数 – user5173426

+1

您收到此错误是因为您的查询失败。你假设它可以工作,但是'mysql_query'返回一个布尔值false,你直接传入'mysql_result'。检查一下返回值是什么,并使用'mysql_error'来查看问题实际是什么。 – andrewsi

回答

1

第一:

是s每一个功能不推荐使用mysql_而不是mysqli_

这意味着你不应该使用它们。这意味着,当这些功能被移除时,脚本将立即崩溃,这将很快发生。

自从这些功能被认为是最糟糕的做法以来,这已经是很长很长的时间了。今天没有任何借口可以使用这些功能。

二:当查询失败

mysql_query()返回一个布尔值false。

你真正的问题是在上面的行。找出为什么$pages_query = mysql_query("SELECT count(event_id) FROM event ORDER BY event_date");失败,并且您的脚本将工作。

三:

切换到mysqli_功能今天。

+0

请不要向新人推荐'mysqli'。他们永远不会使用参数化(因为这太繁琐)。从我们之后得到的问题来看,所得到的代码通常会变得更糟。 – mario

+0

@Ghedipunk,感谢您的建议 –

1

您忘记了使用mysql_select_db($database_name)来选择mysql_connect()之后的数据库。

因此,mysql_query()失败并返回false,因此mysql_result()收到一个布尔值而不是result-set-resource,这会产生您看到的消息。


也就是说,有关弃用mysql扩展(支持mysqli或PDO)的评论是非常有效的。

+0

感谢您注意数据库。我会再试一次 –

0

让我们把它废弃了便于理解,试试这个:

<?php 
$host = "localhost"; 
$username = "your_username_here"; 
$password = "your_pass_here"; 
$dbname = "your_db_name_here"; 

$con = mysql_connect($host, $username, $password) or die ("Could not connect to Server"); 
$db = mysql_select_db($dbname, $con) or die ("Could not connect to database: $dbname"); 

$per_page = 1; 

$pages_query = mysql_query("SELECT count(event_id) FROM event ORDER BY event_date"); 
$pages = ceil(mysql_result($pages_query, 0)/$per_page); 
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1; 
$start = ($page - 1) * $per_page; 

$query = mysql_query("SELECT * FROM event LIMIT $start, $per_page"); 

     while ($query_row = mysql_fetch_assoc($query)) { 
      $event_name = $query_row['event_name']; 
      $event_info = $query_row['event_info']; 
     } 
?> 

注意:如果你已经理解这一点很好,我劝你搬到要么 库MySQLi或PDO。

相关问题