php增加一个字段后并按照前一个字段的数字按从小到大排序后填到里面 20

如图,在字段1的基础上增加一个字段2,经过如下语句<?php//更新组选$con=mysql_connect("localhost","root","root");if(... 如图,在字段1 的基础上增加一个字段2 ,经过如下语句
<?php //更新组选
$con = mysql_connect("localhost","root","root");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("mydb", $con);
$result = mysql_query("SELECT * FROM num");
while($row = mysql_fetch_array($result))
$abc = $row['num1'];
function test($str) {
$arr=str_split($str,1);
$newStr=null;
sort($arr);
for($j=0; $j<count($arr); $j++){
$newStr.=$arr[$j];
}
return $newStr;
}
// $row['xyz']=test($abc);
mysql_query("UPDATE kjnum SET num2 = test($abc)");
mysql_close($con);
?>
运行后为什么在所有行都填入的是最后一行的255,而不是如图上的那个?请高人改正。
注:num1字段的内容已经存在的情况下。
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)+提问者悬赏20(财富值+成长值)
阳光上的桥
2015-04-20 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65814
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部

下面这样就可以了:

<?php //更新组选
   $con = mysql_connect("localhost","root","root");
   if (!$con) die('Could not connect: ' . mysql_error());
   mysql_select_db("mydb", $con);
   mysql_query("UPDATE kjnum SET num2 = num1");
   mysql_close($con);
?>
追问
谢谢 。不是单纯的复制过去 ,而是变成从小到大排序在添加过去。
追答

那就需要主条修改:

<?php //更新组选
   $con = mysql_connect("localhost","root","root");
   if (!$con) die('Could not connect: ' . mysql_error());
   mysql_select_db("mydb", $con);
   $result = mysql_query("SELECT * FROM num");
   while($row = mysql_fetch_array($result)){
        $abc = $row['num1'];
        $xyz = test($abc);
        mysql_query("UPDATE kjnum SET num2 = $xyz where ID=".$row['id']);//假设每一行有个ID字段,是唯一可以标记这一行的,这样保证每次只修改当前行,而不是所有行
   }
   mysql_close($con);

   function test($str) {
       $arr=str_split($str,1);
       sort($arr);
       return implode($arr);
   }
?>
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式