你好我有这样的表:
员工
EmployeeID EmployeeName
1234 Nayeon
1235 Jihyo
1236 Jungyeon
1237 Dahyun
1238 Sana
1239 Mina
1240 Tzuyu
1241 Chaeyeong
1241 Chaeyeong
1242 Momo
我使用了这个源代码:
<?php
mysql_connect("localhost", "root", "1234") or die(mysql_error());
mysql_select_db("Employee") or die(mysql_error());
$employees = mysql_query("SELECT * FROM Employee ORDER BY EmployeeID")
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 = Nayeon
B = Jihyo
C = Jungyeon
D = Dahyun
E = Sana
F = Mina
G = Tzuyu
F = Chaeyeong
H = Chaeyeong
I = Momo
问题是我想像这样随机抽取数据(来自之前的结果):
C = Jungyeon
A = Nayeon
H = Chaeyeong
B = Jihyo
I = Momo
F = Mina
G = Tzuyu
E = Sana
F = Chaeyeong
D = Dahyun
所以我添加这样的代码:
<?php
mysql_connect("localhost", "root", "1234") or die(mysql_error());
mysql_select_db("Employee") or die(mysql_error());
$employees = mysql_query("SELECT * FROM Employee ORDER BY EmployeeID")
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['EmployeeID'] . " </div>";
$position ++;
if($position > 25) {
$position = 0;
$position2 ++;
if($position2 > 25) { echo "We need to rethink this idea."; break; }
$toomany = substr($letters, $position2, 1);
}
}
function generateRandomString($length = 10) {
$characters = $positions;
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
echo generateRandomString();
?>
但不起作用,你知道问题出在哪里吗?谢谢
答案 0 :(得分:1)
您可以使用Shuffle随机化从mysql_fetch_array获取的数组。
它看起来像这样:
$letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$array = array();
while($row = mysql_fetch_assoc($employees)){
$array[] = $row
}
$i = 0;
// Assign a letter to each employee in the correct order
foreach($array as $Key => $row){
$array[$Key]["letter"] = substr($letters, $i, 1);
$i++;
if($i > 25){
$i = 0;
}
}
// Shuffle the array
shuffle($array);
// Print each entry with correctly assigned letter and name.
foreach($array as $row) {
echo "<DIV>" . $row["letter"] . " = " . $row['EmployeeName'] . " </div>";
}