如何使用PHP在MySQL上显示像之前的结果一样的序列随机数据


How to Display Sequence Random Data like the result before on MySQL using PHP?

你好,我有这样的表:

员工

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();
?>

不工作,你知道问题在哪里吗?谢谢你

您可以使用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>";
}