我一直在编写一个脚本,根据分配给用户的名称是偶数还是奇数来显示用户名。它从同一数据库中的2个不同表中调用数据。这是表信息:
表“ comments”具有注释id,tutorialid,名称,日期列:表“优胜者”具有pool,pool2,pool3,pool4,pool5,pool6,pool7列。表“注释”具有多行,这些行通过用户输入进行更新。表“优胜者”只有1行,其数字是每天随机产生的。
显示“结果1”和“结果2”的脚本的第一部分工作正常。无效的部分是调用用户名的部分。如果只选择了结果1,我只想显示与显示的IE相关的用户名,那么我只希望显示带有'commentid'的用户名。
<?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;
}
?>
谁能弄清楚为什么这行不通?
最佳答案
在commentid
周围加引号会将其视为字符串,并且您不能将整数修改为字符串。请尝试以下操作:$query = "SELECT * FROM comments WHERE commentid % 2 = $pool_result";
这来自以下堆栈问题:select row if the "value" % 2 = 1. MOD()