我正在尝试制作一个脚本,根据天气情况输出用户名,他们被分配奇数或偶数值。我想我已经设法让奇数的工作,但偶数的不会输出。这是它的样子。 'commentid'
是确定将它们分配给奇数还是偶数的值。
<?php
$db = mysql_connect('localhost','username','pass') or die("Database error");
mysql_select_db('dbname', $db);
$query2 = "SELECT * FROM comments";
$result2 = mysql_query($query2);
while ($row2 = mysql_fetch_assoc($result2))
if ( $row2['commentid'] % 2 )
{
echo $row2['name'];
echo "<br />";
}
elseif (!$row2['commentid'] % 2)
{
echo $row2['name'];
}
else
{
echo "";
}
?>
我认为它与 $row2['name']
或 (!$row2['commentid'] % 2)
或者我需要将行分配给字符串或其他东西,但我不知道我做错了什么。
编辑 我真的应该更清楚地说明我想用这个脚本做什么,因为虽然你的回答有道理,但它们并没有解决我的问题。在与此脚本相同的页面上,我正在运行另一个脚本。此脚本调用同一数据库中不同表的值。它在每天重置的定时 cron 事件上运行,因此值每天都不同。它看起来像这样并且正在正常工作。
<?
$db = mysql_connect('localhost','username','pass') or die("Database error");
mysql_select_db('dbnamesameasother', $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>";
echo "<br />";
}
else
{
echo "<h4>Result 2</h4>";
echo "<br />";
}
?>
我想做的只是根据上面的脚本指示的数字调用与奇数或偶数相关联的名称。因此,如果此脚本选择结果 1,我只想显示属于结果 1 的用户名。
最佳答案
做一个就足够了:
if ($row2['commentid'] % 2)
{
// odd
}
else
{
// even
}
如果你想知道你的逻辑有什么问题,你应该了解一下operator precedence in PHP .根据图表,!
的优先级高于 %
。因此,表达式 !$row2['commentid'] % 2
的计算如下:
- 当
$row2['commentid']
为 0 时- !0 = 真
- 真 % 2 = 1
- 当
$row2['commentid']
为 1 时- !1 = 假
- 错误 % 2 = 0
- 当
$row2['commentid']
为 2 时- !2 = 假
- 错误 % 2 = 0
关于php - 奇数/偶数脚本有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9258302/