php while循环退不出是什么有关问题
程序员文章站
2022-06-12 14:25:53
...
php while循环退不出是什么问题?
" ;
";
//dbclass
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 更具结果集 获取数组
public function loop_query($result){
return mysql_fetch_array($result);
}
//关闭数据库连接
public function close(){
return mysql_close();
}
}
}
?>
------解决方案--------------------
// 根据查询条件获取 $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 方法,查询并返回全部结果
------解决方案--------------------
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 "
".$yytable_array[0]." | ";".$yytable_array[1]." | ";".$yytable_array[2]." | ";".$yytable_array[3]." | ";".$yytable_array[4]." | ";".$yytable_array[5]." | ";
//dbclass
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 更具结果集 获取数组
public function loop_query($result){
return mysql_fetch_array($result);
}
//关闭数据库连接
public function close(){
return mysql_close();
}
}
}
?>
------解决方案--------------------
// 根据查询条件获取 $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 方法,查询并返回全部结果
------解决方案--------------------
public function fetch_all($sql){
if($result = $this->query($sql))
{
while($r = mysql_fetch_array($result, MYSQL_BOTH)) {
$res[] = $r;相关文章
相关视频