假设我在我的数据库中有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张纸,你每次都要画一张纸,然后把纸放在桌子上,以显示绘制的内容,这就是我想要的。
答案 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浏览器中运行。