PHP 排序问题

2015-05-18 12:29:08 +08:00
 brando


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

解决方案2点
1. 取出双重循环的数据后,放入数组,对数组进行排序
2. 本身的2次查询不合适,正确的是联立查询后,取出数据放入数组,再对数组数据进行排序
brando
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
2015-05-18 14:32:50 +08:00
@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
2015-05-24 09:39:10 +08:00
排序可以取出来再用数组处理嘛
brando
2015-05-25 16:13:27 +08:00
能否根据上述给个案例?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/191873

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX