如何让PHP shuffle结果在整个shuffle中一次显示一个

时间:2015-07-16 16:27:40

标签: javascript php jquery

假设我在我的数据库中有10个项目正在尝试改组,我怎么能改变我当前的代码,这样每次它从数据库中提取一个名称,它一次只显示一个,而不是全部一次?

$con = mysqli_connect("XXX", "XXX", "XXX", "XXX");
$query = mysqli_query($con, "SELECT * FROM users WHERE `group` = 3");

echo 'Normal results: <br>';
$array = array();
while ($row = mysqli_fetch_assoc($query)) {
    $array[] = $row;
    echo $row['firstname'] . ' ' . $row['lastname'] . '<br>';
}
?>
<form method="post">
    <input type="submit" value="Shuffle" name="shuffle">
</form>
<?php
if (isset($_POST['shuffle'])) {
    shuffle($array);
    echo 'Shuffled results: <br>';
    foreach ($array as $result) {
    $shuffle_firstname = $result['firstname'];
    $shuffle_lastname = $result['lastname'];
?>

<div id="shuffle_results">
        <?php echo $shuffle_firstname . ' ' . $shuffle_lastname . '<br>';?>
</div>
 <?php   }
}

//我添加了什么,这也是我添加它的地方

$get_shuffle = array($array);
$shuffle_one = array_pop($get_shuffle);
print_r($get_shuffle);
?>

我希望他们一旦表现出来就留下来......我只想让他们所有人一次出来。比如,一个袋子里有10张纸,你每次都要画一张纸,然后把纸放在桌子上,以显示绘制的内容,这就是我想要的。

1 个答案:

答案 0 :(得分:1)

作为我的评论的后续建议,建议您使用JavaScript代替PHP来制作动画,这是一种基本的方法。 (此代码假设您在页面上有jQuery。)

注意:我还没有测试过这段代码,可能还有一两个错误,但我希望你能得到一般的想法。

您的HTML

$con = mysqli_connect("localhost", "root", "", "db");
$query = mysqli_query($con, "SELECT * FROM users WHERE `group` = 3");

$array = array();
while ($row = mysqli_fetch_assoc($query)) {
    array_push($array, $row);
}

header('Content-Type: application/json');
echo json_encode($array);

你的PHP

function getData() {
  $.ajax({
    url: 'url to PHP script',
    dataType: 'json',
    success: function(data) {
      for(var i = 0, l = data.length; i < l; ++i) {
        window.setTimeout(addResult, 2000, data[i].firstname, data[i].lastname);
      }
    },
    error: function(jqXHR, textStatus, error) {
      alert('Connection to script failed.\n\n' + textStatus + '\n\n' + error);
    }
  });
}

function addResult(firstname, lastname) {
  $('#shuffle_results').append("<p>" + firstname + " " + lastname + "</p>");
}

您的JavaScript

{{1}}

这里的基本思想是你不应该使用PHP来进行DOM操作。 PHP可以将数据加载到您的网页中(并且该数据可以是DOM元素,我已经显示的JSON数据或其他类型的数据),但是一旦有JavaScript应该用于与之交互。回想一下,PHP在您的服务器上运行,而JavaScript(传统上)在客户端的Web浏览器中运行。