所以我有一个名为users的表。 在这里是名为work的列,当前所有用户都是空的。我已经制作了一个包含许多职称的列表,现在我希望将其添加到工作栏下的users表中。
我想我会用这样的数组做点什么:
$input = array("worktitle1", "worktitle2", "worktitle3");
$rand_keys = array_rand($input, 1);
然后在一个简单的查询中更新rand_keys:
$mysqli->query('UPDATE users SET work = '.$rand_keys.'');
然而,当我这样做时,只插入了一个数字值,并且对于我在数据库中没有的所有xx用户来说它是相同的。
如何修复以便为每一行插入一个随机的工作标题?并不是每个用户都有相同的工作标题。我想在查询中执行rand(),但我不确定这是否有效
奖金问题:如果我希望我的array_rand优先考虑一些工作标题(因此在数据库中,特定的工作标题将显示比其他工作标题多10%的次数),我该怎么做?
答案 0 :(得分:0)
我假设您有 for 循环或而或某些要循环的数组并将虚拟数据插入数据库表。
我认为是因为您在for循环之前使用了array_rand,然后使用插入到之前的随机密钥的数据库中
例如:
<?php
$input = array("worktitle1", "worktitle2", "worktitle3");
foreach($somearry as $key => $values){
//Now you need to call the array_rand function
$randomKey = array_rand($input, 1); //This will return only the random key of the array
$randomWork = $input[$randomKey]; //This line will give you the random key value of the input array
//Now write your code *here* to insert this random value ie update query
}
根据您的要求使用 while 循环
while(some_condition){
//Now you need to call the array_rand function
$randomKey = array_rand($input, 1); //This will return only the random key of the array
$randomWork = $input[$randomKey]; //This line will give you the random key value of the input array
//Now write your code *here* to insert this random value ie update query
}
即使你可以采用以下硬编码方式。
注意:这只是为了向用户演示以便这样做 他能正确理解。
for($i = 0; $i < 10; $i++){
//Now you need to call the array_rand function
$randomKey = array_rand($input, 1); //This will return only the random key of the array
$randomWork = $input[$randomKey]; //This line will give you the random key value of the input array
//Now write your code *here* to insert this random value ie update query
$mysqli->query("UPDATE users SET work = '$randomWork'");
}
答案 1 :(得分:0)
如上所述,您的代码随机选择一个标题,然后使用该标题更新所有行,这就是我想你所说的。您需要遍历所有用户,选择标题,然后设置标题&#34; WHERE userid =&#39; xxx&#39;&#34;或其他一些选择特定用户的方式。
加权随机性。带上一系列标题,并为您想要加权的标题添加额外的条目。如果&#34; CEO&#34;使用的可能性要高10%,确保阵列中有10个&#34; CEO&#34;的条目。