Afin d'avoir une table bien brouillée (pour une expérience psychologique), je voudrais trier chaque colonne de mon tableau par RAND(). Althrough ce code fonctionne:MySQL: appliquer un tri aléatoire sur plusieurs colonnes
SELECT Sort.Variable1, Sort.Variable2 FROM Sort ORDER BY Variable1, Variable2 ASC LIMIT 0 , 30
remplaçant "ASC" par "RAND()" faire la requête échouer. Quelqu'un peut-il me donner un conseil (même une solution avec PHP)?
Merci
Edit:
Merci à toutes vos réponses, j'ai finalement fait. Voici mon code PHP pour cela (et désolé pour les anciennes requêtes-pas-nouvelles-PDO-requêtes). Même si elle est peut-être inutile, je poste:
$i=0;
//Describe to retrieve variables' names
$sqlCol= 'DESCRIBE Sort';
$sqlCol= mysql_query($sqlCol);
while ($res=mysql_fetch_array($sqlCol)) {
$var[$i]=$res['Field'];
$i++;
}
$NbCol=mysql_num_rows($sqlCol); //Number of column to shuffle
// Number of items for each column
$sqlCount= 'SELECT COUNT(*) FROM Sort';
$req2= mysql_query($sqlCount) or die ('Err');
$NbLignes= mysql_result($req2,0,0) or die();//Number of rows
//Data array
$sql= "SELECT * FROM Sort";
$req= mysql_query($sql) or die ('Err');
$sort=mysql_fetch_array($req);
for($i=0;$i<$NbCol;$i++) {
${'sql'.$i}='SELECT * FROM Sort ORDER BY RAND()';
${'input'.$i} = mysql_query(${'sql'.$i});
while(${'array'.$i}=mysql_fetch_array(${'input'.$i})) {
$bigArray[$i][]=${'array'.$i}[$i];
}
}
for($i=0;$i<$NbLignes;$i++) {
echo '<div id="q'.$i.'"style="margin-bottom: 50px; float:left">Question '.($i+1);
echo '<ul id="sortable'.$i.'" class="sortable">';
for($j=0;$j<$NbCol;$j++) {
echo '<li class="ui-state-default" id="'.$var[$j].$i.'" name="'.$var[$j].$i.'">'. $bigArray[$j][$i].'</li>';
}
echo '</ul></div>';
}
Pouvez-vous expliquer pourquoi 'ORDER BY RAND()' ne sera pas faire? –
N'avez-vous pas déjà posé cette question sous une apparence légèrement différente? http: // stackoverflow.com/questions/3075115/mysql-php-order-each-column-of-a-array-randomly – Mike
Je ne vais pas nier que vous êtes vrai; J'ai essayé tous les moyens de le faire avec PHP (while, for, shuffle() ...) depuis 2 jours et j'ai regardé tous les posts sur le sujet mais je ne trouve pas de méthode satisfaisante pour le faire fonctionner . Je suis désolé de poster à nouveau dans un autre shell, mais ce problème me rend vraiment fou et je regarde tous les moyens possibles pour surmonter ce problème. – Coronier