首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这个脚本不起作用?(奇数/偶数)

为什么这个脚本不起作用?(奇数/偶数)
EN

Stack Overflow用户
提问于 2012-02-14 07:20:22
回答 2查看 112关注 0票数 0

我一直在编写一个脚本,根据分配给他们的评论id是偶数还是奇数来显示用户名。它从同一数据库中的两个不同的表中调用数据。以下是表格信息:

表'comments‘具有commentid、tutorialid、name、date列:表'winners’具有列pool、pool2、pool3、pool4、pool5、pool6、pool7。表'comments‘有多行,这些行通过用户输入进行更新。表'winners‘只有1行,其中包含每天随机生成的数字。

显示“结果1”和“结果2”的脚本的第一部分工作正常。不工作的部分是调用用户名的部分。我只想显示与结果相关的用户名,IE如果选择结果1,那么我只想显示带有偶数‘commentid’的用户名。

代码语言:javascript
复制
<?php
$db = mysql_connect('localhost', 'username', 'pass') or die("Database error");
mysql_select_db('dbname', $db);

$query = "SELECT pool FROM winners";
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result))
    if ($row['pool'] % 2) {
        echo "<h4>Result 1</h4>";
        $names = get_names(1);
        foreach($names as $name) {
            echo $name . "<br/>";
        }
    } else {
        echo "<h4>Result 2</h4>";
        $names = get_names(0);
        foreach($names as $name) {
            echo $name . "<br/>";
        }
    }

function get_names($pool_result)
{
    $name_array = array();

    $query = "SELECT * FROM comments where mod('commentid',2) = $pool_result";
    $result = mysql_query($query);

    while ($row = mysql_fetch_array($result)) {
        array_push($name_array, $row['name']);
    }

    return $name_array;
}
?>

有没有人知道为什么这不起作用?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-14 07:52:32

commentid两边添加引号会将其视为字符串,并且不能用整数修改字符串。请尝试执行以下操作:

$query = "SELECT * FROM comments WHERE commentid % 2 = $pool_result";

这是从以下堆栈问题中摘录的:select row if the "value" % 2 = 1. MOD()

票数 0
EN

Stack Overflow用户

发布于 2012-02-14 07:26:00

带有mod的SELECT语句没有引用该字段。应该是反引号而不是单引号。单引号表示字符串常量,这将导致常量结果集(mod('commentid',2)的结果似乎为0)。它应该是这样的:

代码语言:javascript
复制
$query = "SELECT * FROM comments where mod(`commentid`,2) = $pool_result";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9269548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档