今天做MYSQL指定顺序排序的时候,有一个循环不知道该咋写,如下,请各位帮忙看看~~先谢谢用如下程式可以按照指定的字符排序..$_system_order = " case username WHEN '小五' then 1 WHEN '小一' then 2 WHEN '小二' then 3 WHEN '小三' then 4 end ASC";
$_result = mysql_query("SELECT id,username,date FROM user ORDER BY $_system_order ");结果
小五
小一
小二
小三问题是:数据为从后台设定好排序后,前台按照后台的设定排序,
字符段username中有很多个用户名,如果这样写的话,会很痛苦的 ?想到用数组循环,不知道如何下手,有什么好的方法吗?
$_result = mysql_query("SELECT id,username,date FROM user ORDER BY $_system_order ");结果
小五
小一
小二
小三问题是:数据为从后台设定好排序后,前台按照后台的设定排序,
字符段username中有很多个用户名,如果这样写的话,会很痛苦的 ?想到用数组循环,不知道如何下手,有什么好的方法吗?
还是给你个示例吧。<?php
$seq = array('小五','小一','小二','小三','小四','小六','小七');
$sort = "case username ";for($i=0;$i<count($seq);$i++){
$sort .=" when '".$seq[$i]."' then ".($i+1);
}
$sort.=" end ASC";
echo $sort;
CREATE TABLE `nisshope`.`tg_pe_user` (
`tg_id` SMALLINT( 3 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '//自动编号',
`tg_username` VARCHAR( 20 ) NOT NULL COMMENT '//用户名',
`tg_date` DATETIME NOT NULL COMMENT '//添加日期'
) ENGINE = MRG_MYISAM ;表里面的数据有:
'小五','小一','小二','小三','小四','小六','小七'我现在想通过PHP操作,将里面的顺序调为:
'小七','小一','小五','小二','小三','小四','小六'思想是什么啊??再次感谢,ohmygirl
就是用户指定的比如,
数据库里面的id先后顺序为 : '小五'(id为1),'小一'(id为2),'小二'(id为3),'小三'(id为4),'小四'(id为5),'小六'(id为6),'小七'(id为7)用户在后台想改成:'小七'(id为1),,'小一'(id为2),'小五'(id为3),'小二'(id为4),'小三'(id为5),'小四'(id为6),'小六'(id为7)
现在的问题是,用户指定了这个自定的规则后,用PHP操作数据库里面的先后顺序呢?
THANKS,我显示已经会了,怎么UPDATE(更改)呢?
小七 1(为input输入框)小一 2(为input输入框)小五 3(为input输入框)
假如我想让 小一 排第一,小五排第二, 小七排第三,我只需要这样改
小七 3(为input输入框)小一 1(为input输入框)小五 2(为input输入框)
但是我不知道的是,我在HTML界面改了之后,怎么用UPDATE语句将其上传到数据库中,让其字段ID与我更改的ID一致,谢谢
我试试~~
不要直接改ID,你往数据库对应表里加个专门用来排序的字段不就成了?你到时候就order by这个字段就行了,这样清晰多了,直接改ID,你让客户怎么用啊,万一不小心填了两个相同的ID你又得排错。
[/Quote]可是有数组的SQL语句挺难写的~~如从数据库中循环出了如下数据:
小七 1 (name = sid[],为input输入框)小一 2 (name = sid[],为input输入框)小五 3 (name = sid,为input输入框)现在将sid改为如下
小七 2 小一 1
小五 3 我怎么去更改数据库里原有的SID啊
$sid = $_POST($_sid);
print_r($sid);显示出如下:
Array
(
[0] => 2
[1] => 1
[2] => 3
)
mysql_query("UPDATE user SET xxxx WHERE XXX ");
XXX里面该怎么写对应啊~~
谢谢
$_sid = _mysql_string($_POST['sid']);
for ($i = 0;$i < $_num;$i++) {
//新的排序写入数据库
_query("UPDATE tg_pe_user SET tg_sid = '{$_sid[$i]}' WHERE tg_id = $i + 1 ");}