如何使用PHP在MySQL上使用随机或模糊数据?
你好,我有这样的桌子:如何使用PHP在MySQL上使用随机或模糊数据?,php,mysql,random,xampp,shuffle,Php,Mysql,Random,Xampp,Shuffle,你好,我有这样的桌子: A = Sehun B = Suho C = Kai D = D.O E = Chen F = Chanyeol G = Baekhyun F = Lay H = Xiumin A = Kai B = Suho C = Sehun D = D.O E = Chen F = Xiumin G = Lay F = Chanyeol H
A = Sehun
B = Suho
C = Kai
D = D.O
E = Chen
F = Chanyeol
G = Baekhyun
F = Lay
H = Xiumin
A = Kai
B = Suho
C = Sehun
D = D.O
E = Chen
F = Xiumin
G = Lay
F = Chanyeol
H = Baekhyun
I = Sehun
E = D.O
C = Baekhyun
G = Chanyeol
B = Kai
H = Xiumin
D = Lay
F = Chen
A = Suho
员工
EmployeeID EmployeeName
1234 Suho
1235 Kai
1236 Baekhyun
1237 Lay
1238 D.O
1239 Chen
1240 Chanyeol
1241 Xiumin
1242 Sehun
我使用此源代码生成随机数据:
<?php
mysql_connect("localhost", "root", "1234") or die(mysql_error());
mysql_select_db("Employee") or die(mysql_error());
$employees = mysql_query("select p.*
from (select (@c := CHAR(ASCII(@c) + 1)) as c, EmployeeName
from Employee cross join
(select @c := 'A') params
order by EmployeeId
) p order by rand();")
or die(mysql_error());
$letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$position = 0;
$position2 = 0;
$toomany = '';
while($row = mysql_fetch_array( $employees )) {
echo "<DIV>" . $toomany.substr($letters, $position, 1) . " = " . $row['EmployeeName'] . " </div>";
$position ++;
if($position > 25) {
$position = 0;
$position2 ++;
if($position2 > 25) { echo "We need to rethink this idea."; break; }
$toomany = substr($letters, $position2, 1);
}
}
?>
或者像这样:
A = Sehun
B = Suho
C = Kai
D = D.O
E = Chen
F = Chanyeol
G = Baekhyun
F = Lay
H = Xiumin
A = Kai
B = Suho
C = Sehun
D = D.O
E = Chen
F = Xiumin
G = Lay
F = Chanyeol
H = Baekhyun
I = Sehun
E = D.O
C = Baekhyun
G = Chanyeol
B = Kai
H = Xiumin
D = Lay
F = Chen
A = Suho
问题是,我想随机抽取这样的数据(从之前的数据库中,EmployeeID按字母顺序更改):
在本例中,数据具有相同的值,但序列不同(仅其药剂变化,而非其名称随机):
或者像这样:
A = Sehun
B = Suho
C = Kai
D = D.O
E = Chen
F = Chanyeol
G = Baekhyun
F = Lay
H = Xiumin
A = Kai
B = Suho
C = Sehun
D = D.O
E = Chen
F = Xiumin
G = Lay
F = Chanyeol
H = Baekhyun
I = Sehun
E = D.O
C = Baekhyun
G = Chanyeol
B = Kai
H = Xiumin
D = Lay
F = Chen
A = Suho
你知道问题出在哪里吗?谢谢您的帮助。从数据库中获取所有内容并将其保存到PHP数组中,然后应用其中一个随机PHP函数。更改键,因此我在PHP.net网站中看到,该网站保存索引:
<?php
function shuffle_assoc(&$array) {
$keys = array_keys($array);
shuffle($keys);
foreach($keys as $key) {
$new[$key] = $array[$key];
}
$array = $new;
return true;
}
?>
从数据库中获取所有数据并将其保存到PHP数组中,然后应用其中一个随机PHP函数。更改键,因此我在PHP.net网站中看到,该网站保存索引:
<?php
function shuffle_assoc(&$array) {
$keys = array_keys($array);
shuffle($keys);
foreach($keys as $key) {
$new[$key] = $array[$key];
}
$array = $new;
return true;
}
?>
为什么不在PHP中洗牌?可以将未缓冲的结果存储在关联数组中,使用字母作为键,名称(Sehun等)作为值。对于一个简单的关联数组洗牌,请参见这里的第一条注释:对于26行以上的行,该如何工作?我看到你写了支持的信。例如,仅以$letters为单位的ABC,请给出一个7行输出的示例。请注意:不要在大型数据集上使用ORDER BY RAND()
。他们往往变得很慢很快。最好在php中选择一个随机范围并在php中进行随机操作,而不是让MySQL来做……为什么不在php中进行随机操作呢?可以将未缓冲的结果存储在关联数组中,使用字母作为键,名称(Sehun等)作为值。对于一个简单的关联数组洗牌,请参见这里的第一条注释:对于26行以上的行,该如何工作?我看到你写了支持的信。例如,仅以$letters为单位的ABC,请给出一个7行输出的示例。请注意:不要在大型数据集上使用ORDER BY RAND()
。他们往往变得很慢很快。最好在php中选择一个随机范围并在php中随机化,而不是让MySQL来做…我也尝试过这个,但没有发生过你可以在这里签入谢谢我也尝试过这个,但是没有发生过你可以在这里签入谢谢