我在项目中遇到了绊脚石,需要一些指导。我需要实现一个模型查询,返回一个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; ?>
也许是我在代码中缺少的东西,或者可能有一个更简单的方法?谢谢你的帮助。
美国东部时间5月28日12:28修订
if Else的修改代码如下
<?php if ($this->ip_address > 0) : ?>
"message"
<?php else: ?>
"rating form"
<?php endif; ?>
查询代码与Eduardo发布的完全一样!
再次感谢!
您应该在查询中使用资源:
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