|
- <?PHP
- include("conn.php");
- $sql = "Select name2 FROM test group by name2";
- $result = mysql_query($sql);
- $total = mysql_num_rows($result);
- echo "<table border='1' id='table1'>";
- for ($i = 1; $i<=$total; $i++){
- $row = mysql_fetch_array($result);
- $name2 = $row['name2'];
-
- $sql1 = "SELECT name FROM test WHERE name2 = '$name2' order by name";
- $result1 = mysql_query($sql1);
- $total1 = mysql_num_rows($result1);
-
- for ($l = 1; $l<=$total1; $l++){
- $row1 = mysql_fetch_array($result1);
- $name = $row1['name'];
-
- echo "<tr>";
- echo "<td width='100'>";
-
- if ($l== '1'){
- echo $name2;
- } else {
- echo ".";
- }
-
- echo "</td>";
-
- echo "<td width='100'>$name</td>";
-
- $sql2 = "SELECT name2 FROM test2 WHERE name2 = '$name2' order by name";
- $result2 = mysql_query($sql2);
- $total2 = mysql_num_rows($result2);
-
- for ($c =1; $c<=12; $c++){
- $row2 = mysql_fetch_array($result2);
- $name2 = $row1['name2'];
-
- echo "<td width='100'>$name2</td>";
- }
-
- echo "</tr>";
- }
- }
- echo "</table>";
- ?>
复制代码
从中可以看到我用了3个for..loop和3个sql command。
如果我用在大型的db的话,
里面有很多data的那种。
会不会有问题呢??
因为不想它loop太久变成timeout。
这样的话就麻烦了
来,各位大大说说你们的意见。 |
|
|
|
|
|
|
|
发表于 5-11-2006 01:43 AM
|
显示全部楼层
Select name2 FROM test group by name2
SELECT name FROM test WHERE name2 = '$name2' order by name
SELECT name2 FROM test2 WHERE name2 = '$name2' order by name
DB design有待改善哦...如果test和test2能加入 ID 来做Primary Key..
就方便好多了
例如:
SELECT * FROM test a,test2 b where a.name_id = b.name_id and a.name2 = ".$name2." order by name;
那你就不用跑3次query了... |
|
|
|
|
|
|
|
发表于 5-11-2006 09:04 AM
|
显示全部楼层
原帖由 红发 于 4-11-2006 10:22 PM 发表
<?PHP
include("conn.php");
$sql = "Select name2 FROM test group by name2";
$result = mysql_query($sql);
$total = mysql_num_rows($result);
echo "<table bo ...
TimeOut不只是等待你的DB Searching, 而是你的HTML太多内容没办法在一定的时间内Transfer到你的电脑。
建议使用Paging来Handle大笔的资料。
在你的第一个Query就要Set Limit了, 如:
Select name2 FROM test group by name2 LIMIT 0,30 |
|
|
|
|
|
|
|
楼主 |
发表于 5-11-2006 11:01 AM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 5-11-2006 11:05 AM
|
显示全部楼层
原帖由 belon_cfy 于 5-11-2006 09:04 AM 发表
TimeOut不只是等待你的DB Searching, 而是你的HTML太多内容没办法在一定的时间内Transfer到你的电脑。
建议使用Paging来Handle大笔的资料。
在你的第一个Query就要Set Limit了, 如:
Select n ...
第一个因该不多。
少过10个。
第二个就很多了,有50-60个这样。
没办法,人家要一次看完吗。
还有就是他们在localnetwok跑的。
但是不知道为何会有点慢
所以才担心会timeout这回事 |
|
|
|
|
|
|
|
发表于 5-11-2006 05:38 PM
|
显示全部楼层
跑local都timeout..就代表很有问题了...
第一次10个
第二次50~60
第三次你没说..就当你也是50~60
10*50*50 = 你总共要Loop 25000次...跑25000次Query..
太夸张了...倒不如你说说看你想要写什么..
我帮你看看比较好... |
|
|
|
|
|
|
|
楼主 |
发表于 6-11-2006 11:12 AM
|
显示全部楼层
原帖由 xfuture 于 5-11-2006 05:38 PM 发表
跑local都timeout..就代表很有问题了...
第一次10个
第二次50~60
第三次你没说..就当你也是50~60
10*50*50 = 你总共要Loop 25000次...跑25000次Query..
太夸张了...倒不如你说说看你想要写什么..
我帮你 ...
第三次是12次。因为一年有12个月
10*60*12=7200
也没有timeout啦。
是担心会timeout罢了。
因为我在我的PC是没有问题的。
他们就不知道为何会有点慢。
只是想知道一下看你们有什么看法和好的方法来做这样的东西。
因为要跑一年的record所以有点担心。
本人也没有做过需要跑一年record的system。 |
|
|
|
|
|
|
|
发表于 6-11-2006 01:31 PM
|
显示全部楼层
原帖由 belon_cfy 于 5-11-2006 09:04 AM 发表
TimeOut不只是等待你的DB Searching, 而是你的HTML太多内容没办法在一定的时间内Transfer到你的电脑。
建议使用Paging来Handle大笔的资料。
在你的第一个Query就要Set Limit了, 如:
Select n ...
什么是Paging和Handle? |
|
|
|
|
|
|
|
楼主 |
发表于 6-11-2006 09:17 PM
|
显示全部楼层
原帖由 EDWINcheong 于 6-11-2006 01:31 PM 发表
什么是Paging和Handle?
分页 |
|
|
|
|
|
|
|
发表于 6-11-2006 10:06 PM
|
显示全部楼层
原帖由 红发 于 6-11-2006 11:12 AM 发表
第三次是12次。因为一年有12个月
10*60*12=7200
也没有timeout啦。
是担心会timeout罢了。
因为我在我的PC是没有问题的。
他们就不知道为何会有点慢。
只是想知道一下看你们有什么看法和好的 ...
尽量不要开太多的connection,还要注意deadlock等...加上你的db type 是myISAM的话。。可能就会发生table locking了。。
如果你的concurrent user多的话就要注意。。
能的话也可以用store procedure来做
目前我再写的系统在同一时间里会有很多的concurrent processing,所以我把他分开在不同server来执行,条件是你要有syn server等
--------------------------------------------------------------- |
|
|
|
|
|
|
|
楼主 |
发表于 6-11-2006 10:36 PM
|
显示全部楼层
原帖由 max5007 于 6-11-2006 10:06 PM 发表
尽量不要开太多的connection,还要注意deadlock等...加上你的db type 是myISAM的话。。可能就会发生table locking了。。
如果你的concurrent user多的话就要注意。。
能的话也可以用store procedure来做
目 ...
keke,那时end year report的design。
没有办法的了。
一年不知道他们会开多少次
其他的我就没有这样的当心 |
|
|
|
|
|
|
|
发表于 7-11-2006 09:04 AM
|
显示全部楼层
其实你应该简略地说出..
你的Form是怎样...例如user会有什么选择...
然后你的Result会怎样..
那我想会有更多人会帮到你...
其实你不用一次过显示12个月的成绩出来...你可以让user选择什么月份..
身为一个程式员...
你应该要考虑到如何保护你的系统...阿不然每天server down..你也是挺麻烦的... |
|
|
|
|
|
|
|
发表于 13-11-2006 10:16 AM
|
显示全部楼层
这样写不可能吧,试想如果有上万笔资料会怎样。你还是另作设计吧。 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|