Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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 对$\u POST变量进行排序_Php_Mysql_Forms_Arrays_Sorting - Fatal编程技术网

Php 对$\u POST变量进行排序

Php 对$\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

这对你们来说可能很容易。我试图对表单发送的$\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 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