请问这个PHP数组要怎么循环
时间:2011-10-02
来源:互联网
PHP code
$res=mysql_query("SELECT * FROM news WHERE type='cp'"); $id =''; while($rs1=mysql_fetch_array($res)) { $id .= "".$rs1['id'].""; //循环出分类下的所有ID $arr = array ($id) ;//把该ID的编成数组,,在这里错了,没有 逗号,数组中的KEY永远只有“0”。 foreach($arr as $key=>$val){//遍历数组中的ID,这里也就跟着错了,怎么遍历都只能是一个ID(还是281050560860) $ii=$val[0]; $res=mysql_query("SELECT * FROM news WHERE id='$ii'");//这里的ID要等于遍历出来的各个ID,每个ID执行一次 下方的“执行模块代码”,直到该分类下的ID都执行完一遍就停止。 $rs=mysql_fetch_array($res); $name=$rs['name']; 这里是其他执行模块代码 echo "$name 模块代码运行成功";//这里要提示 所有ID的 成功信息,一行一条。 } }
要成功 运行 代码注释里的功能。
或者说,遍历出该分类下的所有ID,然后按ID执行其他代码一个ID执行一次,直到都执行一次后就停止。
搞了大半天搞晕了。要怎么弄了,教下,最好给出代码,我已经晕了
作者: hudiegud2 发布时间: 2011-10-02
$arr = array($id); //这一行修改为$arr[] = $id;
作者: T5500 发布时间: 2011-10-02
PHP code
$arr = array($id); //这一行修改为$arr[] = $id;
这样不行的。你 print_r,看下,还是只有一个key,那就是0
作者: ppxxyy123 发布时间: 2011-10-02
作者: ppxxyy123 发布时间: 2011-10-02
$res = mysql_query("SELECT * FROM news WHERE type='cp'"); $arr = array(); while ($rs1 = mysql_fetch_array($res)) { $arr[] = $rs1['id']; foreach ($arr as $key => $val) { $res = mysql_query("SELECT * FROM news WHERE id='{$val}'"); $rs = mysql_fetch_array($res); $name = $rs['name']; echo "$name 模块代码运行成功"; } }
作者: T5500 发布时间: 2011-10-02
PHP code
$res = mysql_query("SELECT * FROM news WHERE type='cp'"); while($row = mysql_fetch_array($res)) { $result = mysql_query("SELECT * FROM news WHERE id='".$row['id']."'"; $rs = mysql_fetch_array($result); $name = $rs['name']; echo "$name 模块代码运行成功"; }
作者: T5500 发布时间: 2011-10-02
PHP code
$res = mysql_query("SELECT * FROM news WHERE type='cp'"); $arr = array(); while($row = mysql_fetch_array($res)) $arr[] = $row['id']; $sql = "SELECT * FROM news WHERE id IN ('".implode("','", $arr)."')"; $res = mysql_query($sql); while($row = mysql_fetch_array($res)) { $name=$rs['name']; //这里是其他执行模块代码 echo "$name 模块代码运行成功"; }
作者: T5500 发布时间: 2011-10-02
作者: PhpNewnew 发布时间: 2011-10-02
对每个ID执行一条SQL这样处理的效率太低了,应该可以用一条SQL语句查询出所有的结果再用while()循环处理:
PHP code
$res = mysql_query("SELECT * FROM news WHERE type='cp'");
$arr = array();
while($row = mysql_fetch_array($res)) $arr[] = $row['……
3种都只能执行一次。没办法循环执行。还有其他方法没呀。哥
作者: hudiegud2 发布时间: 2011-10-02
SELECT * FROM news WHERE id='$id'
你的$id 不就是从 第一条SQL里取得的么?
难道这两条SQL难道不能只用
SELECT * FROM news WHERE type='cp'
然后 Foreach 读出里面的iid 再取得里面的 'name' ?
作者: PhpNewnew 发布时间: 2011-10-02
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28