Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP在MySQL上使用随机或模糊数据?_Php_Mysql_Random_Xampp_Shuffle - Fatal编程技术网

如何使用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来做…我也尝试过这个,但没有发生过你可以在这里签入谢谢我也尝试过这个,但是没有发生过你可以在这里签入谢谢