PHP查询数据库用FOR循环问题

PHP查询数据库用FOR循环问题,第1张

这当然是不行的了,上面的告诉你的也是错误的,因为原因在于你循环的时候进行了数据库的查询,所以每次都是新的数据,指针当然要从第一条开始了。

所以不是你的循环的错误,而是你数据库查询代码位置的错误

要这样写

$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 这样的更新方法。避免多次全表扫描。

不是最了解你的需求,仅供参考。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6149458.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存