if(!($dblink=mysql_connect($dbhost,$dbuser,$dbpass))){
printf("MySql Failed!!!!!\n");
printf("Error:".mysql_error());
die();
}
mysql_select_db($dbdatabase)
printf("MySql Failed!!!!!\n");
printf("Error:".mysql_error());
die();
}
mysql_select_db($dbdatabase)
if(!($result=mysql_query($query))){ }就此没必要,不利于阅读。
用or die()就行了呀。如果真要,那是你想在{}内写更详细的信息??
while($sub=mysql_fetch_array($result)){ }
可用while($sub[$i]=mysql_fetch_array($result)){ }更好,不用担心体内语句多造成易错!
for($j=0;$j<$i;$j++) {
$query='SELECT id,name FROM `subject` where father_id='.$topsubject[$j]['id']; ....}不是好做法;这就是服务器出现too many connection....的原因吧。你这样会造成瞬时内N次服务联接。====其实有SQL语句能一次实现你的想法的(从第用二维组存数据到N次服务器联接)====为何不仔细看看SQL文档??
祝你做得更好!
$query='SELECT id,name FROM `subject` where father_id='.$topsubject[$j]['id']; ....}sql我不是很熟呢是不是应该for($j=0;$j<$i;$j++) {
$query='SELECT id,name FROM `subject` where father_id='.$topsubject[$j]['id']. or father_id='.$topsubject;}
类似的,把$topsubject[$j]['id']都连到一个query里?
然后一次query完?我现在不太明白,query完后,fetch时是否还要link到mysqlserver?
多谢!
while(list($n,$itembookid)=each($data)){
$query1.=' or id='.$itembookid;
}
$result1=mysql_query($query1) or die(mysql_error()); $i=0;
while(($book[$i]=mysql_fetch_array($result1))){$i++;}我改成这样写了,速度好像有一些提升。
但是我这里本来就是宽带,看的不明显。
不知道是不是改这么弄?