• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php while循环退不出是什么问题?

php 搞代码 4年前 (2022-01-23) 17次浏览 已收录 0个评论
文章目录[隐藏]
<?php include('include/config.php');include('include/dbclass.php');session_start();$db = db::getInstance();   //  $db->check_user_login();   //检查用户是否登录$db->createcon();            //建立连接// $user=$_SESSION["user"];$user = "libero";           //测试临时使用//   执行 user数据表 选取user数据$sql_user = "select * from user where user = '$user'";$user_array  = $db->fetch_array($sql_user);//  执行 yytable 数据  获取 yytable 所有数据$sql_yytable = "select * from yytable where uid = '$user_array[0]'";echo "<table border='1'>" ;while($yytable_array = $db->fetch_array($sql_yytable)){	echo "<tr>";	echo "<td>".$yytable_array[0]."</td>";	echo "<td>".$yytable_array[1]."</td>";	echo "<td>".$yytable_array[2]."</td>";	echo "<td>".$yytable_array[3]."</td>";	echo "<td>".$yytable_array[4]."</td>";	echo "<td>".$yytable_array[5]."</td>";			echo "</tr>";	}echo "</table>";//dbclass<?php class db{	private static $dbhost = "localhost";	private static $dbuser = "root";	private static $password = "";	private static $dbname = "yy";	private static $instance = NULL;	 	 	 // 构造函数	private function _construct(){}     //  实例化		public static function getInstance(){			if (self::$instance == null){				self::$instance = new db();				}			return self::$instance;			    }	//连接数据库	public function mycon(){		@mysql_connetc(self::$dbhost,self::$dbuser,self::$password);				}	//选择数据库		public function selectdb(){		$mysql_select_db(self::$dbname);				}				    //创建连接  连接数据库	public function createcon(){				mysql_connect(self::$dbhost,self::$dbuser,self::$password);		mysql_select_db(self::$dbname);	}						//  根据查询条件获取 $sql 结果集	public function fetch_array($sql){		   		   if($result = $this->query($sql))		  {		  $rs = mysql_fetch_array($result, MYSQL_BOTH);		   return $rs;		   		   }		else { echo "数据查询失败"; }				}				// 数据库查询执行语句	public function query($sql){		mysql_query("set names utf8");		return mysql_query($sql);	}		//   loop 更具结果集 获<p>+本文来源gao!%daima.com搞$代*!码9网(</p><strong>搞gaodaima代码</strong>取数组		public function loop_query($result){		return mysql_fetch_array($result);						}						//关闭数据库连接				public function close(){						return mysql_close();					}										}																				}			       ?>

回复讨论(解决方案)

while($yytable_array = $db->fetch_array($sql_yytable))

首先考虑$sql_yytable这个sql语句是错误的 这个时候 将返回 “数据查询失败”

while语句内是一个付值表达式 所以永远为真

打印出sql语句$sql_yytable = “select * from yytable where uid = ‘$user_array[0]'”; 然后去数据库里面执行以下看看结果

// 根据查询条件获取 $sql 结果集
public function fetch_array($sql){
if($result = $this->query($sql)) { // 用while之后 这个判断一直都是成立的 所以就成死循环了 $rs = mysql_fetch_array($result, MYSQL_BOTH);
return $rs;
} else {
echo “数据查询失败”;
}
}

while($yytable_array = $db->fetch_array($sql_yytable)){
总是在执行查询 $db->fetch_array($sql_yytable) 并总是能返回第一条结果

你的这个 fetch_array 方法只能用于查询一条记录的场合
你应该再写一个 fetch_all 方法,查询并返回全部结果

while($yytable_array = $db->fetch_array($sql_yytable)){
总是在执行查询 $db->fetch_array($sql_yytable) 并总是能返回第一条结果

你的这个 fetch_array 方法只能用于查询一条记录的场合
你应该再写一个 fetch_all 方法,查询并返回全部结果 大神你说的对 我一直只循环输出 第一条语句,如果想循环出其他全部结果,具体请明示

// 根据查询条件获取 $sql 结果集
public function fetch_array($sql){
if($result = $this->query($sql)) { // 用while之后 这个判断一直都是成立的 所以就成死循环了 $rs = mysql_fetch_array($result, MYSQL_BOTH);
return $rs;
} else {
echo “数据查询失败”;
}
} 知道问题在哪儿了,关键是如何解决啊 我想输出所有符合查询条件的 结果

  public function fetch_all($sql){    if($result = $this->query($sql))    {      while($r = mysql_fetch_array($result, MYSQL_BOTH)) {        $res[] = $r;      }      return $res;    }  else { echo "数据查询失败"; }  }

当然这样返回的是数组,你得按数组做后续工作


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php while循环退不出是什么问题?
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址