PHP操作数据库排序问题

___________超 2011-11-10 11:20:16
数据库结构与数据,先新建一个nisshope数据库,后可以直接导入:

-- phpMyAdmin SQL Dump
-- version 3.3.9
-- http://www.phpmyadmin.net
--
-- 主机: localhost
-- 生成日期: 2011 年 11 月 10 日 03:16
-- 服务器版本: 5.5.8
-- PHP 版本: 5.3.5

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- 数据库: `nisshope`
--

-- --------------------------------------------------------

--
-- 表的结构 `tg_pe_user`
--

CREATE TABLE IF NOT EXISTS `tg_pe_user` (
`tg_id` smallint(4) unsigned NOT NULL AUTO_INCREMENT COMMENT '//自动编号',
`tg_sid` smallint(4) unsigned NOT NULL DEFAULT '0' COMMENT '//排序ID',
`tg_usernumber` varchar(10) NOT NULL COMMENT '//员工工号',
`tg_username` varchar(20) NOT NULL COMMENT '//员工姓名',
`tg_txtday` char(2) NOT NULL COMMENT '//班别',
`tg_addname` varchar(20) NOT NULL COMMENT '//添加人',
`tg_date` datetime NOT NULL COMMENT '//日期',
PRIMARY KEY (`tg_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=20 ;

--
-- 转存表中的数据 `tg_pe_user`
--

INSERT INTO `tg_pe_user` (`tg_id`, `tg_sid`, `tg_usernumber`, `tg_username`, `tg_txtday`, `tg_addname`, `tg_date`) VALUES
(1, 1, 'C060403', '劉小軍', '', '', '2011-10-21 15:07:22'),
(2, 2, 'C080502', '帥曉霞', '', '', '2011-10-21 15:07:31'),
(3, 3, 'C050702', '張莉', '', '', '2011-10-21 15:08:11'),
(4, 4, 'S1102495', '席容芳', '', '', '2011-10-21 15:08:40'),
(5, 5, 'C060902', '李雲峰', '', '', '2011-10-21 15:09:24'),
(6, 6, 'F1007006', '胡國清', '', '', '2011-10-21 15:09:49'),
(7, 7, 'F1007010', '司志強', '', '', '2011-10-21 15:10:11'),
(8, 8, 'C050907', '王文俊', '', '', '2011-10-21 15:10:31'),
(9, 9, 'F1009122', '周林縣', '', '', '2011-10-21 15:13:14'),
(10, 10, 'F1003018', '范超', '', '', '2011-10-21 15:13:30'),
(11, 11, 'F1106068', '韋獻文', '', '', '2011-10-21 15:14:14'),
(12, 12, 'S1103022', '陳國國', '', '', '2011-10-21 15:14:37'),
(13, 13, 'F1103011', '鄒仕平', '', '', '2011-10-21 15:16:19'),
(14, 14, 'F1103018', '耿磊', '', '', '2011-10-21 15:16:43'),
(15, 15, 'F1105038', '王小威', '', '', '2011-10-21 15:17:04'),
(16, 16, 'F1003180', '楊世偉', '', '', '2011-10-21 15:17:42'),
(17, 17, 'F1107002', '牛偉', '', '', '2011-10-21 15:18:02'),
(18, 18, 'H1108031', '王全良', '', '', '2011-10-21 15:18:33');





test.php页面:

<?php
mysql_connect("localhost","root","");
mysql_select_db("nisshope");
mysql_query("set names utf8");
//接收新的顺序
if ($_GET['action'] == 'upsort' && isset($_POST['sid'])) {
//接收数据
$_num = mysql_num_rows(mysql_query("SELECT tg_id FROM tg_pe_user"));
$_arr = $_POST['sid'];

foreach ($_arr as $_order => $_item) {
$_id = $_order + 1;
mysql_query("UPDATE tg_pe_user SET tg_sid = $_item WHERE tg_id = $_id ");
}
}




//读取数据
$_result = mysql_query("SELECT
tg_id,
tg_sid,
tg_username,
tg_usernumber,
tg_date
FROM
tg_pe_user
ORDER BY
tg_sid ASC
");


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>设置</title>
</head>
<body>
<div id="content">
<h5>设置排序</h5>
<form method="post" action="?action=upsort">
<table>
<tbody>
<tr><th>工号</th><th>姓名</th><th>顺序</th></tr>
<?php
while (!!$_rows = mysql_fetch_array($_result)) {
echo '<tr><td>'.$_rows['tg_usernumber'].'</td><td>'.$_rows['tg_username'].'</td><td><input type="text" name="sid[]" maxlength="2" value="'.$_rows['tg_sid'].'"/></td></tr>';
}
?>
<tr><td colspan="3" class="modify"><input name="submit" type="submit" value="修改" /></td></tr>
</tbody>
</table>
</form>
</div>
</body>
</html>


如上为数据库与PHP页面
目的为修改先后顺序.
1.比如,将顺序那一栏中的顺序 1与2手动对调一下, test.php会更改对应的顺序显示;

2.更改之后,我再次将1与2对调,此时就不行了,不能将数据库里面的tg_sid对调过来,该怎么办啊?

困扰我很多天了~~ 谢谢




...全文
148 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
___________超 2011-11-10
  • 打赏
  • 举报
回复

这段代码解决了,呵~~ 谢谢了~~
<input type="text" name="sid['.$_rows['tg_id'].']" maxlength="2" value="'.$_rows['tg_sid'].'"/>

[Quote=引用 5 楼 ci1699 的回复:]
两个地方都改了吗?


<input type="text" name="sid[]" maxlength="2" value="'.$_rows['tg_sid'].'"/>

<input type="text" name="sid['.$_rows['tg_id'].']" maxlength="2" value="'.$_rows['tg_sid'].'"/>


……
[/Quote]
___________超 2011-11-10
  • 打赏
  • 举报
回复
没有得到解决.所以放置了一段时间

[Quote=引用 6 楼 ohmygirl 的回复:]
又见lz这个问题。
hi
[/Quote]
ohmygirl 2011-11-10
  • 打赏
  • 举报
回复
又见lz这个问题。
hi
ci1699 2011-11-10
  • 打赏
  • 举报
回复
两个地方都改了吗?


<input type="text" name="sid[]" maxlength="2" value="'.$_rows['tg_sid'].'"/>

<input type="text" name="sid['.$_rows['tg_id'].']" maxlength="2" value="'.$_rows['tg_sid'].'"/>


$_id = $_order + 1;

$_id = $_order;


[Quote=引用 4 楼 van416521 的回复:]

试过了,一开始将 1 与 2可以更改,但是之后再次将新顺序的 1与2,就不能更改了??

引用 3 楼 ci1699 的回复:
你试了么? 你先按我说的改试下吧。

怎就没听人说呢 =_=
很明显是
$_id = $_order + 1;
有问题


引用 2 楼 van416521 的回复:

效果一样,我将$_order与$_intem对调过,也是一样,要不你将数……
[/Quote]
___________超 2011-11-10
  • 打赏
  • 举报
回复
试过了,一开始将 1 与 2可以更改,但是之后再次将新顺序的 1与2,就不能更改了??

[Quote=引用 3 楼 ci1699 的回复:]
你试了么? 你先按我说的改试下吧。

怎就没听人说呢 =_=
很明显是
$_id = $_order + 1;
有问题


引用 2 楼 van416521 的回复:

效果一样,我将$_order与$_intem对调过,也是一样,要不你将数据库导入到你的电脑帮我看看.谢谢
[/Quote]
ci1699 2011-11-10
  • 打赏
  • 举报
回复
你试了么? 你先按我说的改试下吧。

怎就没听人说呢 =_=
很明显是
$_id = $_order + 1;
有问题

[Quote=引用 2 楼 van416521 的回复:]

效果一样,我将$_order与$_intem对调过,也是一样,要不你将数据库导入到你的电脑帮我看看.谢谢
[/Quote]
___________超 2011-11-10
  • 打赏
  • 举报
回复
效果一样,我将$_order与$_intem对调过,也是一样,要不你将数据库导入到你的电脑帮我看看.谢谢
ci1699 2011-11-10
  • 打赏
  • 举报
回复
你UPDATE 时没固定tg_id对应更新啊。

怎能$_id = $_order + 1;这样。


<input type="text" name="sid[]" maxlength="2" value="'.$_rows['tg_sid'].'"/>

<input type="text" name="sid['.$_rows['tg_id'].']" maxlength="2" value="'.$_rows['tg_sid'].'"/>


$_id = $_order + 1;

$_id = $_order;

试试
PHP5+MySQL 网站开发实例精讲》全面、详细地介绍了基于PHP和MySQL的动态网络开发技术的原理和基础编程知识。全书共分为四篇18章,以“PHP基础知识→MySQL数据库基础知识→PHP高级开发→常用模块编程与综合案例开发”为线索具体展开,不仅包括PHP开发环境的搭建、PHP的基本语法、PHP中的常用函数、在MySQL中创建数据库和数据表,以及对MySQL数据库进行查询、删除、更新和排序等基础开发知识,还包括在PHP中创建图像、使用会话等较深入的开发内容,并在“常用模块编程和综合案例开发”篇中给出了常用模块(如通信录模块、计数器模块、文件上传模块、图片浏览模块和聊天室模块等)的开发方法,以及文件管理系统、投票系统、影碟管理系统、新闻发布系统和网上购物商城5个综合案例的开发全过程。  全书内容由浅入深,充分考虑了PHP学习者的特点,并在配套光盘中提供了书中实例的全部源代码,以方便读者举一反三,编写出适合自己的程序。 《PHP5+MySQL 网站开发实例精讲》不仅合适PHP技术的初学者,还能够帮助有一定编程经验的PHP开发人员解决开发过程中遇到的实际问题。《PHP5+MySQL 网站开发实例精讲》可作为广大PHP学习者的自学用书,或高等院校相关专业的教材和辅导用书。 显示更多 显示更少 --------------------------------------------------------------------------------

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧