弄不明白的function里的while

林老伯咯 2013-05-26 11:27:23

function wuMing(){
global $mysqli;
$x="select * from x";
$xun=$mysqli->query($x);
$i=0;
while($x=$xun->fetch_assoc()){
echo $a=$x['Name'],$i++.'<hr>';
wuMingShengCheng($a);
}
}


wuMingShengCheng 是1个生成HTML的函数。
通过传来的$a 去循环1个栏目下的文章。

当执行 wuMing(); 时。
里面的 while 循环了 第一个,执行了wuMingShengCheng();
在循环 while 也echo $a出来了 但不执行wuMingShengCheng();

输出的结果是

$a 输出成功
$a 生成成功
$a 输出成功
然后无下文了

在while里,如不执行wuMingShengCheng($a);的话
输出时完整的。例如$a里有5条记录。都能完整输出。

...全文
197 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2013-05-26
  • 打赏
  • 举报
回复
while($x=$xun->fetch_assoc()){ echo $a=$x['Name'],$i++.'<hr>'; // wuMingShengCheng($a); } 这样能执行? 如果是的话,那就是 wuMingShengCheng 的问题了
林老伯咯 2013-05-26
  • 打赏
  • 举报
回复
引用 11 楼 xuzuning 的回复:
你在 wuxsming 中有 $mysqli->close(); 而 $mysqli 是全局的(global $mysqli;) 那么当你再次进入 wuxsming 时,$dh=$mysqli->query($daohan); 能执行吗?
搞定了,在函数体里要引入数据库连接。
林老伯咯 2013-05-26
  • 打赏
  • 举报
回复
引用 11 楼 xuzuning 的回复:
你在 wuxsming 中有 $mysqli->close(); 而 $mysqli 是全局的(global $mysqli;) 那么当你再次进入 wuxsming 时,$dh=$mysqli->query($daohan); 能执行吗?
能执行,不过只是1次。 2个函数体,都在不同的文件。 wuMingShengCheng() 是在B文件。被A文件的wuxsming()里的while循环调用。 wuxsming()的while完后才close mysqli。 而wuMingShengCheng()执行完后也会close mysqli 然而,wuxsming()的while执行了第二次后,wuMingShengCheng就不执行了。
xuzuning 2013-05-26
  • 打赏
  • 举报
回复
你在 wuxsming 中有 $mysqli->close(); 而 $mysqli 是全局的(global $mysqli;) 那么当你再次进入 wuxsming 时,$dh=$mysqli->query($daohan); 能执行吗?
林老伯咯 2013-05-26
  • 打赏
  • 举报
回复
引用 9 楼 xuzuning 的回复:
你不提供正确的信息,让人如何判断错误原因?


function wuxsming($fenleiming){
    global $mysqli;
    echo $fenleiming;
    $daohan="select * from class where Name='$fenleiming'";
    $dh=$mysqli->query($daohan);
    $d=$dh->fetch_assoc();
    echo $xiaoshuofenlei=$d['Name'];
    $dh->free();
    $mysqli->close();
}
xuzuning 2013-05-26
  • 打赏
  • 举报
回复
你不提供正确的信息,让人如何判断错误原因?
林老伯咯 2013-05-26
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
你不是说 最后就$mysqli->close();而已 吗?
主要的是,这个函数体里,是生成,过程化的生存。,假如这个函数体里就是一个ECHO 结果也是一样。 现在想知道的 while 里循环执行函数,有什么特别点的东西没。
xuzuning 2013-05-26
  • 打赏
  • 举报
回复
你不是说 最后就$mysqli->close();而已 吗?
林老伯咯 2013-05-26
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
那你贴出 wuMingShengCheng 的代码

    function wuMing(){
    global $mysqli;
    $x="select * from x";
    $xun=$mysqli->query($x);
    $i=0;
    while($x=$xun->fetch_assoc()){
        echo $a=$x['Name'],$i++.'<hr>';
        wuMingShengCheng($a);
    }
}

function wuMingShengCheng($a){
    echo $a;
}
就是这么简单的 输出为 name1 name1 name2 就三条。 name1 wuMing echo 出来的 name1 wuMingShengCheng echo 出来的 name2 wuMing echo 出来的 没了。 如果是wuMingShengCheng 的问题。而这个函数只有echo。没其他。
林老伯咯 2013-05-26
  • 打赏
  • 举报
回复
引用 3 楼 zhaoyunpengo 的回复:
$mysqli->close();
while后。有关闭结果集和mysqli。
xuzuning 2013-05-26
  • 打赏
  • 举报
回复
那你贴出 wuMingShengCheng 的代码
zhaoyunpengo 2013-05-26
  • 打赏
  • 举报
回复
$mysqli->close();
林老伯咯 2013-05-26
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
while($x=$xun->fetch_assoc()){ echo $a=$x['Name'],$i++.'<hr>'; // wuMingShengCheng($a); } 这样能执行? 如果是的话,那就是 wuMingShengCheng 的问题了
wuMingShengCheng(); 有执行成功1次,可以说明是可执行的, wuMingShengCheng();里没有其他循环,只是一个过程最后就$mysqli->close();而已。

21,890

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧