这种在SpeedPHP怎么表达?

#1 shenxinbo1

 
$sql=mysql_query("select * from address where category=0");
$i=0;
while($rs=mysql_fetch_array($sql)){
$i++;
.................
}mysql_free_result($sql);

2010-10-12 14:42:14

#2 jake

$g = spClass('lib_guestbook');

$results = $g->findSql("select * from address where category=0");
for( $i=0; $i < count($results); $i++ ){
//$results[$i]['xxx']
}

2010-10-12 15:28:04

#3 billgame

jake,您好。刚好遇到你在这里讲解spClass的问题。

我刚遇到一个问题,自己看了文档还是没有解决,现向你寻求帮助,呵呵。
情况是这样的:
我在一个方法里,比如一个要从数据表中调用文章和产品的页面。
因为要调用2种数据,就是一个从article数据表中调用,一个是从product数据表中调用,那么就要使用spClass两次啦。
结果就出错了,难道在同一个方法里不能使用两次吗?使用之后模板就变形了,经过排查后发现,把其他代码都删除,只保留如下代码,仍然是变形的,百思不得其解啊。
$db_article=spClass("article");
$db_product=spClass("product");
$this->display("index.html");

两个spClass删除其中任何一句都能正常显示,我试了你在另外一个帖子里说的,销毁前面一个数据库链接的变量,但是还是不行。
$db_article=spClass("article");
$db_article=null;
$db_product=spClass("product");
$this->display("index.html");

希望能得到您的指点,谢谢。

2010-10-12 16:36:17

#4 jake

spClass和PHP的new是一样,只是加了些更方便的功能,PHP中new多少次也是可以的,所以spClass也可以重复用很多次。所以spClass本身是没问题的。

楼上的排查做的不错,但是还有部分代码没有检查:

$db_article=spClass("article");
$db_product=spClass("product");
$this->display("index.html");
这里,在调用spClass的时候(和PHP的new一样),也就是实例化类。
在类实例化的过程中,new会调用类的构造函数,也就是类的同名成员函数或者是__construct()函数。
所以可以检查一下,上面两个类的构造函数内有什么对模板有影响的输出代码?(注意,只有“输出代码”才会导致模板变形)

2010-10-12 16:56:01

#5 coolcool1265

没得问题,我用过的。
楼猪可以试试dump,看看输出的结果是否正确。

2010-10-13 22:50:53

#6 billgame

回复 5 coolcool1265

太奇怪了,我这里就是不行。看样子应该是在什么地方输出了个东西,才导致模板变形的,可是我自己写的代码很少啊,一样就看光了, 没有输出东西哦。郁闷中。

2010-10-22 16:53:30

#7 jake

模板变形应该都是css或者布局等问题,所以建议用firebug之类的探测一下看看问题。

另外,如果有隐藏的字符输出,可以在IE下查看源文件并另存为文本,有可能会看到隐藏的字符。

2010-10-22 17:01:33

#8 billgame

回复 7 jake


    多谢jake的回复,呵呵。我刚才一步一步排查,终于发现问题所在了。原来是model下的php文件的字符编码问题,我是怀疑的。
因为我把官方的例子中的文件直接拷贝过来,把我的内容复制进去就可以了。
   万恶的编辑器啊,我遇到很多问题都是编辑器惹的祸,大家都在用什么编辑器呢?我用的editplus,这个编辑器的字符编码问题挺多啊。
   再次提醒下,以后有可能会遇到和我同类问题的朋友,希望我的回帖将来有朋友遇到时能搜索到,哈哈。

   强烈感谢jake,感谢speedphp,等咱有钱了,一定尽自己的能力捐赠给speedphp,太威武了!

2010-10-22 18:00:44

#9 jake

:handshake

推荐用notepad++,支持开源。

2010-10-23 08:33:30

#10 billgame

回复 9 jake




    感谢推荐,我试试去。

2010-10-26 22:36:57