在表中搜索以查找set_id是否存在IP地址

时间:2013-05-28 03:16:18

标签: php mysql zend-framework

我的项目遇到了绊脚石,需要一些指导。我需要实现一个返回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日28日

if Else的修订代码如下

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

查询代码与Eduardo发布的内容完全相同!

再次感谢!

1 个答案:

答案 0 :(得分: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