【问题标题】:Add random numbers in database在数据库中添加随机数
【发布时间】:2015-12-23 00:52:26
【问题描述】:

我有一个包含 5 个数字的数组。我使用事件调度在每 5 秒后插入行,但它继续只插入第一个值。 如何在 mysql 中的每次插入时插入不同的数组值。

这是我的代码:

<?php
  require_once('con.php');  
  $numb = array(101,245,342,894,45);
  $random = array_rand($numb);
  for($a=0;$a<=5;$a++)
  {
        $query = "CREATE EVENT myEvent1 ON SCHEDULE EVERY 5 SECOND DO BEGIN INSERT INTO emp(emp_id) VAlUES('$numb[$random]'); END";
        $res = mysqli_query($con,$query);
  }
?>

【问题讨论】:

  • 因为您选择了 1 个随机数,然后告诉 MySQL 每 5 秒插入一次,或者其他任何操作。
  • 尝试将$random = array_rand($numb); 移动到$query = 之前的循环内,以便每次通过循环插入时都会获得一个新的随机数。
  • 什么意思?你的意思是每5秒你在数据库中插入一个随机行(1个数字)?
  • 是的..我想每 5 秒插入一个新的随机行,每次使用不同的数字
  • 是的。它不应与前一个相同,而是数组中的任何数字

标签: php mysql random


【解决方案1】:

您在PHP 中获取随机数并将其传递给MySQL,每5 秒使用一次。相反,您需要在MySQL 中执行随机部分,以便您每次都获得随机性。 (参考这里:MYSQL insert random from list

$query = "CREATE EVENT myEvent1 ON SCHEDULE EVERY 5 SECOND DO BEGIN INSERT INTO emp(emp_id) VAlUES(ELT(0.5 + RAND() * 5, 101, 245, 342, 894, 45)); END";

【讨论】:

  • 它不工作。这段代码也停止了插入部分:(
  • 嘿,它起作用了..我不知道它是怎么做的。非常感谢你:)
  • 其实我错过了一个括号')'
  • 谁投了反对票,任何解释都将不胜感激。谢谢!
【解决方案2】:

试试这个:

  $numb = array('101','245','342','894','45');

或者这个:

array_rand(array_flip($numb), $n);

查看更多信息:http://php.net/manual/en/function.array-rand.php

【讨论】:

    猜你喜欢
    • 2015-06-01
    • 2021-03-14
    • 1970-01-01
    • 2017-06-26
    • 2019-12-24
    • 2020-09-05
    • 1970-01-01
    • 2021-12-31
    • 2020-02-12
    相关资源
    最近更新 更多