V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
brando
V2EX  ›  PHP

PHP 排序问题

  •  
  •   brando · 2015-05-18 12:29:08 +08:00 · 3057 次点击
    这是一个创建于 3462 天前的主题,其中的信息可能已经有所发展或是发生改变。


    请过路大侠指点~~~
    9 条回复    2015-05-25 16:13:27 +08:00
    willvvvv
        1
    willvvvv  
       2015-05-18 13:05:45 +08:00   ❤️ 1
    什么问题,具象点。
    brando
        2
    brando  
    OP
       2015-05-18 13:14:55 +08:00
    iscraft
        3
    iscraft  
       2015-05-18 13:21:24 +08:00   ❤️ 1
    table2 order by sid asc不起作用么
    kslr
        4
    kslr  
       2015-05-18 13:21:35 +08:00   ❤️ 1
    问问题的时候把代码放出来不要截图,否则别人为了回答,还要打出来代码么?
    willvvvv
        5
    willvvvv  
       2015-05-18 13:23:58 +08:00   ❤️ 1
    @brando 用了双重循环展示数据,内层无法决定外层顺序

    解决方案2点
    1. 取出双重循环的数据后,放入数组,对数组进行排序
    2. 本身的2次查询不合适,正确的是联立查询后,取出数据放入数组,再对数组数据进行排序
    brando
        6
    brando  
    OP
       2015-05-18 13:55:33 +08:00
    文字版
    -----------------------
    Table1

    id name time1
    80 Lee 2015-05
    90 John 2015-05
    122 Ak47 2015-05

    Table2

    id uid sid time2
    300 122 3 2015-05
    310 90 1 2015-05
    330 80 2 2015-05



    <?php
    $m = date("m");
    $row=mysql_fetch_array($sql);
    $sql=mysql_query("select * from table1 where 1",$conn);
    while($row=mysql_fetch_array($sql, MYSQL_ASSOC)){
    ?>

    <?php
    $ordertime = date("Y-m");
    $row2=mysql_fetch_array($sql2);
    $sql2 = mysql_query("select * from table2 where uid='".$row[id]."' and time2 like '".$ordertime."%'" ,$conn);
    while($row2=mysql_fetch_array($sql2)){
    ?>
    <tr>
    <td valign="middle" class="t1">第<?php echo $row2[sid];?>名</td>
    <td valign="middle" class="t1"><?php echo $row[name];?></td>
    </tr>


    最终想要的结果应该是:

    table2.sid table1.name table2.time2
    1 John 2015-05
    2 Lee 2015-05
    3 Ak47 2015-05

    目前的输出得结果是
    table2.sid table1.name
    第2名 Lee
    第1名 John
    第3名 Ak47

    我想要按照table2.sid的序号大小进行排序,效果就是上面的“最终想要的结果...”,而不是当前table.id进行排序。

    --------------------------------------
    @kslr 如@willvvvv所说2次查询不合适

    @iscraft 嗯,谢谢提醒,下次注意了。

    @willvvvv 请问方案2是怎么写?谢谢~
    willvvvv
        7
    willvvvv  
       2015-05-18 14:32:50 +08:00   ❤️ 1
    @brando

    select t2.sid,t1.name,t2.time2 from table1 t1 inner join table2 t2 on t1.id=t2.uid where t2.time2 like CONCAT(date_format(now(), '%Y-%m'),'%') order by t2.sid asc;
    mingyun
        8
    mingyun  
       2015-05-24 09:39:10 +08:00
    排序可以取出来再用数组处理嘛
    brando
        9
    brando  
    OP
       2015-05-25 16:13:27 +08:00
    能否根据上述给个案例?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   935 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:48 · PVG 05:48 · LAX 13:48 · JFK 16:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.