Php 对$\u POST变量进行排序
这对你们来说可能很容易。我试图对表单发送的$\u POST变量进行排序,并在mysql中更新排序结果。我不知道该怎么做,也很感激有人能帮我 mymain.phpPhp 对$\u POST变量进行排序,php,mysql,forms,arrays,sorting,Php,Mysql,Forms,Arrays,Sorting,这对你们来说可能很容易。我试图对表单发送的$\u POST变量进行排序,并在mysql中更新排序结果。我不知道该怎么做,也很感激有人能帮我 mymain.php //I have a loop here. (omitted) //$k will be increased by 1 every time the loop starts, so I will know the total times of the loops //the form will be submitted to updat
//I have a loop here. (omitted)
//$k will be increased by 1 every time the loop starts, so I will know the total times of the loops
//the form will be submitted to update.php
echo "<input type='hidden' name='pickTotal' value='".$k."' />";
echo "<input type='hidden' id='point' name='earnedPoint".$k."' value='".$point."' />";
echo "<input type='hidden' id='users' name='userName".$k."' value='".$userPick['user']."' />";
//loop ends
//这里有一个循环。(略)
//$k将在每次循环开始时增加1,因此我将知道循环的总次数
//表单将提交到update.php
回声“;
回声“;
回声“;
//环端
myupdate.php
if(isset($_POST['submit'])){
$pickTotal=$_POST['pickTotal']; //get the total loop
for ($p=0;$p<=$pickTotal;$p++){
$userToBeUpdated=$_POST['userName'.$p];
$userPoint=$_POST['earnedPoint'.$p];
//sort the $userPoint here.
//I need to find out who got the most points
//and list user's place. 1st, 2nd, 3rd...etc.
//update my mysql
}
if(isset($\u POST['submit'])){
$pickTotal=$\u POST['pickTotal'];//获取总循环
对于($p=0;$p您必须有一个排序标准
无论如何,函数应该会对您有所帮助。您必须有一个排序条件
无论如何,函数应该对您有所帮助。您应该使用PHPs特殊表单名称语法,而不是计算$k和$p:
<input name="earnedPoint[]" value="...">
<input name="userName[]" value="...">
这应该首先得到最高值。不要计算$k和$p,而应该使用PHPs特殊表单名称语法:
<input name="earnedPoint[]" value="...">
<input name="userName[]" value="...">
这会让你首先得到最高的分数。我会建议一些与马里奥建议非常相似的东西,但方式略有不同:
echo "<input type='hidden' id='point' name='user[$k][points]' value='".$point."' />";
echo "<input type='hidden' id='users' name='user[$k][name]' value='".$userPick['user']."' />";
在此基础上,您可以使用自定义排序功能:
$data = $_POST['user'];
usort($data, 'usortPost');
function usortPost($a, $b) {
if ($a['points'] == $b['points']) return 0;
return $a['points'] < $b['points'] ? 1 : -1;
}
$data=$\u POST['user'];
usort($data,'usortPost');
功能usortPost($a$b){
如果($a['points']=$b['points'])返回0;
返回$a['points']<$b['points']?1:-1;
}
我想提出一些与马里奥建议非常相似的建议,但方式略有不同:
echo "<input type='hidden' id='point' name='user[$k][points]' value='".$point."' />";
echo "<input type='hidden' id='users' name='user[$k][name]' value='".$userPick['user']."' />";
在此基础上,您可以使用自定义排序功能:
$data = $_POST['user'];
usort($data, 'usortPost');
function usortPost($a, $b) {
if ($a['points'] == $b['points']) return 0;
return $a['points'] < $b['points'] ? 1 : -1;
}
$data=$\u POST['user'];
usort($data,'usortPost');
功能usortPost($a$b){
如果($a['points']=$b['points'])返回0;
返回$a['points']<$b['points']?1:-1;
}
如前所述,您可以使用PHP提供的语法:
echo "<input type='hidden' id='point' name='earnedPoint[{$userPick['user']}]' value='".$point."' />";
如前所述,您可以使用PHP提供的语法:
echo "<input type='hidden' id='point' name='earnedPoint[{$userPick['user']}]' value='".$point."' />";
谢谢。PHPs特殊表单名称语法非常有用。我会给你公认的答案,因为你是第一个提出php名称语法的人。:DThank you。PHPs特殊表单名称语法非常有用。我会给你公认的答案,因为你是第一个提出php名称语法的人。:Dnice.+1。肯定更尖锐o问题然后是我的答案。很好地使用php名称语法。不知道它可以这样玩。+1nice.+1。肯定比我的答案更指向问题。很好地使用php名称语法。不知道它可以这样玩。+1