php - 永不结束 for() 和 while() 循环

标签 php mysql

如果之前有人问过这个问题,我真的很抱歉,我在这里已经尽我所能,但没有一个类似的问题能回答我的问题......

我正在尝试创建各种抽奖...我有一个成员及其条目的数据库表,我正在尝试将他们的名字重复插入到另一个数据库表中,重复次数与他们的个人条目数量一样多.

现在我已经查找了 for() 循环,据我所知,我的代码的这种尝试应该有效:

$Amount = mysql_query("SELECT * FROM reapingbowl WHERE userid = $reapablef->id") or die(mysql_error());


$reapablef = mysql_query("SELECT * FROM members");
  $reapablef = mysql_fetch_object($reapablef);
 $amount = $reapablef->entries

for($e = 1; $e < $amount; $e++)
{ 
mysql_query("INSERT INTO reapingbowl (userid) VALUES ($reapablef->id)") or 
die(mysql_error()); 
}

其中 $amount 先前定义为从数据库中提取条目金额,而 $reapablef 先前定义为从数据库表中提取特定用户。整个过程包含在一次对一个用户起作用的 while 循环中。

我的问题只是这个 for() 循环永远不会结束。据我所知,它应该在条目数量取代 $e 值之后结束,但它一直在继续,我不明白为什么......我对另一个 for() 循环有类似的问题,我不明白为什么。

我也尝试了一个 while 循环,编码是这样的:

$Amount = mysql_query("SELECT * FROM reapingbowl WHERE userid = $reapablef->id") or die(mysql_error());


while ($amount = mysql_num_rows($Amount), $amount < $ENTRIES)
{
mysql_query("INSERT INTO reapingbowl (userid) VALUES ('$reapablef->id')") or
die(mysql_error());
}

这做同样的事情,只是不停地输入名字......如果我是愚蠢的或其他什么,我真的很抱歉但是请有人能帮我弄清楚为什么吗?

希望这就是所有必要的代码。我真正想知道的是为什么 for() 循环永远不会结束...(我在其他地方尝试过,限制为 10,但它仍然会永远持续下去)

最佳答案

我敢打赌,您的 $amount 变量包含一个对象。

作为PHP manual states ,当使用比较运算符时,对象总是被认为大于数字。

在另一个现实中,PHP 可能会在您进行愚蠢的比较时向您发出警告,但出于某种原因,在我们这个宇宙中它不会。

很可能有一个简单的解释和/或一个很好的理由,但现在我想不出任何。

关于php - 永不结束 for() 和 while() 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20927072/

相关文章:

mysql - 当三个重复但不只是一个重复时更新重复列

mysql - 主键和自动增量: it is possible to increment not even the same value for all the tables?

javascript - 如何根据 Handsontable 中的表格单元格值设置表格单元格外观

php - laravel 4.2 发送电子邮件显示附件的自定义名称

php - 从错误的表中选择ID并优化mysql查询

php - 我想知道我附近的位置在哪个基本方向

php - 如何将旧的 "ugly"网址重定向到 seo 友好的网址?

php - 如何通过 Puppet(在 Vagrant 上)连接 Nginx 和 PHP?

php - 如何更改 Laravel 迁移中的主键

php - 2011 年 PHP 中的 XSS 方法?