0

我在我的项目中遇到了一个绊脚石,需要一些指导。我需要实现一个返回 mysql_num_rows 的模型查询 - 我认为。我想要做的是在我的页面上我有一个评级小部件,记录投票人的 IP 地址。我不希望该人多次投票。当我返回 mysql_num_rows 时,我收到一条错误消息

警告:mysql_num_rows() 只需要 1 个参数,给定 0

这是我的模型

    public function getRatingByIp($ipAddress)
{
    $sql = sprintf ("SELECT ip_address FROM " . $this->_prefix . "media_set_rating
                WHERE set_id = set_id");
    mysql_query($sql);
    return mysql_num_rows();

}

这是我为控制器准备的:

$setId  = $this->_request->getParam('set_id');
$ipAddress = $this->_request->getClientIp();

$ipAddress = $setDao->getRatingByIp($setId);

$this->_view->assign('ip_address', $ipAddress);
$this->_view->assign('set_id', $setId);

然后在视图中我想做一个 if else 语句来显示或隐藏评级表。我现在有这个:

<?php if ($this->ipAddress > 0) : ?>
  "message"
<?php else: ?>
  "rating form"
<?php endif; ?>

也许我在代码中遗漏了一些东西,或者可能有更简单的方法?谢谢您的帮助。

修订后的 12:28 EST 5 月 28 日

if Else 的修改代码如下

<?php if ($this->ip_address > 0) : ?>
  "message"
<?php else: ?>
  "rating form"
<?php endif; ?>

查询代码与 Eduardo 发布的完全一样!

再次感谢!

4

1 回答 1

3

您应该在查询中使用该资源:

public function getRatingByIp($ipAddress)
{
    $sql = "SELECT ip_address FROM " . $this->_prefix . " media_set_rating WHERE set_id = " . $ipAddress);
    $result = mysql_query($sql);
    return mysql_num_rows($result);
}

您不应该使用mysql_num_rows它,因为它已被弃用。

参考: http: //php.net/manual/en/function.mysql-num-rows.php

于 2013-05-28T03:19:58.113 回答