1,当进入长沙(当然其它城市一样处理)时,旅游线路栏目内显示所有city为长沙的线路,但花钱买的则显示在前面,其它显示在后面。
增加字段money存放所付钱数,显示时按money降序排列2,会员也可以购买原本是长沙的线路,但在武汉的显示权,(比如说一条线路游几个城市,先长沙,再武汉,最后北京)
增加popedom字段,存放显示权所在地,显示时通过其过滤或排序3,以上显示排序不一定都在都一位,有可能1在第一位,2由于第一位已被其它线路占了,只能排第二位了。
这是必然的,总有先来后到的嘛,况且购买时所花的费用和购买的期限也不尽相同

解决方案 »

  1.   

    非常感谢 xuzuning(唠叨) 兄的回答。还有一个问题关于第2点。
    就是同一线路,可能有几个地点的排序权 如 id=1 的线路,要在长沙排第一,要在武汉排第二,要在长沙排第一,
    这个如何处理。popedom字段内如何存放这些显示权的所在地。
      

  2.   

    排序项中增加 popedom='$city'一项$city为所在地名称,比如
    popedom = 长沙在“长沙”则$city='长沙' popedom='$city'为1
    在“武汉”则$city='武汉' popedom='$city'为0
      

  3.   

    非常感谢 唠叨 兄的回答。第2点的回答没看明白。可能我没把问题描述更清楚,当然,为了解决这个问题还可以多设计几个数据表的。再总的描述要实现的问题一下。在 travelline 中 poperdom字段中 数据如何写 以 id=1 的线路为例。id  uid province city    title           money    popedom     
    1   8    湖南   长沙    长沙韶山一日游    880  长沙,武汉,北京问题:
    1,popedom中多个显示权地这样存在该字段内的吗
    2,这个money 880是popedom中哪个城市的呢。归纳的说,id为1的线路是湖南长沙的会员发布的(本来该线路只能在长沙线路栏目中显示),
    但他通过购买手段取得在长沙,武汉,北京的城市线路栏目中都要排在其它线路的前面权力。
    如何实现。
      

  4.   

    1,popedom中多个显示权地这样存在该字段内的吗
    可以,不过处理起来有点麻烦2,这个money 880是popedom中哪个城市的呢。
    各自或共有
    一般可看作8号会员花880在长沙,武汉,北京做广告。很正常
      

  5.   

    真是对不住 唠叨 兄了。呵呵。我可能还没有问题描述得清楚。   我是说。
        
       8 号会员的 第1条线路 在长沙投了880 排在长沙线路栏目的第一个位置 
       8 号会员的 第1条线路 在武汉投了500 排在武汉线路栏目的第四个位置
    ..................   8 号会员的 第3条线路 在武汉投了800 排在武汉线路栏目的第二个位置
    ................数据表怎么设计,共需要几个数据表,能完成以上问题。
    目前已有 travelline 这里全国各国会员发布的旅游线路,
    但花多少钱,有些哪些城市的排序权的数据记录,我不知是另开数据表,还是其它怎么处理
      

  6.   

    还是加个表比较好id   travelline_id(travelline中id)  city(显示权地)   money(钱)
    1          1                              长沙             880
    2          1                              武汉             500类似这样
      

  7.   

    那在traveline中的线路排序问题,如何解决!就是不会写那个排序代码。
      

  8.   

    travelline 数据表:
    id      uid        province         city         title            message        
    1        8          湖南             长沙    长沙韶山一日游        具体游览景点......
    money 表
    id   travelline_id(travelline中id)  city(显示权地)   money(钱)
    1          1                              长沙             880
    2          1                              武汉             500排序:(对于长沙)
    select * from travelline left join money 
    on travelline.id=money.travelline_id where (money.city="长沙" or travelline.city="长沙")
    order by money desc
      

  9.   

    非常感谢 helloyou0(你好!) 的回复。按照你的思路,出现了问题,就是如果同一条线路推广了N个城市,则结果中出现了该线路 N 次。
      

  10.   

    你排序是根据显示权城市的。
    一个线路在一个显示权城市只有一次(因为他只交一份钱)不过上面那个sql要改一下
    select * from travelline left join money 
    on travelline.id=money.travelline_id where (money.city="长沙" or 
    (travelline.city="长沙" and money.city is NULL ))
    order by money desc另外如果你让没交钱的设为money=0,同样在money表插入记录的话
    那么sql可以简化为
    select * from travelline,money 
    where travelline.id=money.travelline_id and money.city="长沙" 
    order by money desc
      

  11.   

    helloyou0(你好!) 你的答案已解答对了该题。非常感谢。 在此之前我是用以下这个解答的,虽然结果也符合要求,但不知写法有没有不妥的地方。请指点下。select * from travelline 
    left join money on travelline.id=money.travelline_id 
    and money.city='长沙'  //多了这行,但这样解决了如果同一条线路推广到不同城市,也只显示与本城市有关的一条
    where (money.city="长沙" or travelline.city="长沙")
    order by money desc
      

  12.   

    on和where之间如何互相影响我也不是太清楚。
    一般on后面我只放两表关联的条件,其它的我都是放在where里的,
    只要结果正确,应该没太大关系。