Home > Backend Development > PHP Tutorial > PHP函数内while 循环无效,该如何解决

PHP函数内while 循环无效,该如何解决

WBOY
Release: 2016-06-13 12:10:27
Original
1253 people have browsed it

PHP函数内while 循环无效
$conn = mysql_connect("localhost","root","root");//连接数据库,请填写你自己的用户名密码
mysql_select_db("hxxx");//选择MYSQL数据库 
mysql_query("set names utf-8");//设置为gb2312编码

function Cliebiao($mingcheng1,$mingcheng2){
$liebiao="";
$rows="";
$result = mysql_query("select mingcheng,daima from mingcheng where leixing='".$mingcheng1."'"); 
echo "$mingcheng1: ";
return $liebiao;
}
$mingchenga="类型名称";
$mingchengb="mingcheng";
Cliebiao($mingchenga,$mingchengb);
?>
符合条件的数据是存在的,而且不只一条,可程序执行后没有显示数据,只有“”类型名称: “”

请各位大师指点一下哪的问题


------解决思路----------------------
while($rows = mysql_fetch_row($result)){
 echo "";
 }
把里面的mysql_fetch_row变成mysql_fetch_array
------解决思路----------------------
奥才看到原来你还有一个Cliebiao函数呢。你那些链接数据库的代码函数里面引用不到的
------解决思路----------------------

<br /><br />global $conn;<br />$result = mysql_query("select mingcheng,daima from mingcheng where leixing='".$mingcheng1."'",$conn);<br /><br />
Copy after login

------解决思路----------------------
函数封装不是这样echo的吧。
------解决思路----------------------
<br /><?php<br />$conn = mysql_connect("localhost","root","root");//连接数据库,请填写你自己的用户名密码<br />mysql_select_db("hxxx");//选择MYSQL数据库 <br />mysql_query("set names utf-8");//设置为utf-8编码<br /><br />function Cliebiao($mingcheng1, $mingcheng2, $conn){<br />    $liebiao = "";<br />    $rows = "";<br />    $result = mysql_query("select mingcheng,daima from mingcheng where leixing='".$mingcheng1."'", $conn); <br />    $liebiao .= "$mingcheng1: <select name=$mingcheng2>";<br />    while($rows = mysql_fetch_array($result)){<br />        $liebiao .= "<option value=".$rows[1].">".$rows[0]."</option>";<br />    }<br />    $liebao .= "</select>";<br />    return $liebiao;<br />}<br />$mingchenga="类型名称";<br />$mingchengb="mingcheng";<br />echo Cliebiao($mingchenga, $mingchengb, $conn);<br />?><br />
Copy after login

1、请注意函数中尽量不要使用echo等输出类函数,这样会降低你的函数可重用性,你可以将函数中的内容return之后,将结果输出。
2、6楼说的对,你的句柄是在外面生成的内部无法获得,请里明确的标明你的句柄再使用mysql_query函数。
------解决思路----------------------
引用:
<br /><?php<br />$conn = mysql_connect("localhost","root","root");//连接数据库,请填写你自己的用户名密码<br />mysql_select_db("hxxx");//选择MYSQL数据库 <br />mysql_query("set names utf-8");//设置为utf-8编码<br /><br />function Cliebiao($mingcheng1, $mingcheng2, $conn){<br />    $liebiao = "";<br />    $rows = "";<br />    $result = mysql_query("select mingcheng,daima from mingcheng where leixing='".$mingcheng1."'", $conn); <br />    $liebiao .= "$mingcheng1: <select name=$mingcheng2>";<br />    while($rows = mysql_fetch_array($result)){<br />        $liebiao .= "<option value=".$rows[1].">".$rows[0]."</option>";<br />    }<br />    $liebiao .= "</select>";<br />    return $liebiao;<br />}<br />$mingchenga="类型名称";<br />$mingchengb="mingcheng";<br />echo Cliebiao($mingchenga, $mingchengb, $conn);<br />?><br />
Copy after login

1、请注意函数中尽量不要使用echo等输出类函数,这样会降低你的函数可重用性,你可以将函数中的内容return之后,将结果输出。
2、6楼说的对,你的句柄是在外面生成的内部无法获得,请里明确的标明你的句柄再使用mysql_query函数。
上边有个变量写错了,这个才是正确的
------解决思路----------------------
PHP函数内如何循环显示数据示例
//导入数据连接
if($_GET[mail_id]==true){
$query=mysql_query("update tb_mail_box set tb_mail_type=1 where tb_mail_id='$_GET[mail_id]'");
}
//数据库连接页面
 $conn=mysql_connect("localhost","root","root"); //连接数据库服务器
 mysql_select_db("db_forum",$conn); //连接指定的数据库
 mysql_query("set names gb2312"); //对数据库中的编码格式进行转换,避免出现中文乱码的问题
?>
//设置循环数据库表数据
$myrow=mysql_fetch_array($query);//循环数据
?>//codego.net/tags/4/1/
//显示表字段信息
//显示数据表中Email信息
//显示数据表中的某数量
//显示数据表中邮件名称
//显示邮件时间

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template