所以不是你的循环的错误,而是你数据库查询代码位置的错误
要这样写
$num=mysql_query("select
*
from
china_city
where
parentid=0")
$n=
mysql_num_rows
($num)
for($i=1$i<=$n$i++){
${"row".$i}=mysql_fetch_array($num)
echo
$i."
".${"row".$i}['city']."
"
}
一般都是用foreach或while写的
foreach(mysql_fetch_array($num)
as
$key=>$value){}
while($row
=mysql_fetch_array($num)){}
那就用sphinx 技术,目前这个是最好的,没有之一。下面是我百度百科弄过来的,怎么使用还得你自己看白皮书了。
Sphinx的主要特性包括:
高速索引 (在新款CPU上,近10 MB/秒)
高速搜索 (2-4G的文本量中平均查询速度不到0.1秒)
高可用性 (单CPU上最大可支持100 GB的文本,100M文档)
提供良好的相关性排名
支持分布式搜索
提供文档摘要生成
提供从MySQL内部的插件式存储引擎上搜索
支持布尔,短语, 和近义词查询
支持每个文档多个全文检索域(默认最大32个)
支持每个文档多属性
支持断词
支持单字节编码与UTF-8编码。[1]
sql= "UPDATE mydata SET p1='".$pointarr[i][1]."' where ps like '%".$pointarr[i][每次都去做一次like的全表扫描当然慢了。
建议使用批量更新,减少查询次数。
比如先查询出结果集,然后在内存里去 *** 作字段更新
最后采用 update ...... where id = xxx 这样的更新方法。避免多次全表扫描。
不是最了解你的需求,仅供参考。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)