2015-10-03 5 views
1

У меня возникла проблема с данными цикла из mysql с использованием стиля ООП.PHP OOP while loop

так, вот мой код:

class mysql { 

private $host; 
private $username; 
private $password; 
private $database; 
public $con; 

    public function connect($setHost, $setUsername, $setPassword, $setDatabase) { 

     $this->host = $setHost; 
     $this->username = $setUsername; 
     $this->password = $setPassword; 
     $this->database = $setDatabase; 

     $this->con = mysqli_connect($setHost, $setUsername, $setPassword, $setDatabase);    
    } 

    public function query($setQuery) { 

     $query = mysqli_query($this->con, $setQuery); 

     return $query;  
    } 

    public function fetch($setFetch) { 

     $fetch = mysqli_fetch_assoc($this->query($setFetch)); 

     return $fetch; 
    } 
} 


$objMysql = new mysql(); 
$con = $objMysql->connect("localhost" , "root" , "root" , "test"); 

while ($dataSlideshow = $objMysql->fetch("SELECT * FROM slideshow)) { 
<h1><?php echo $dataSlideshow['images']; ?></h1> 
} 

проблема была, когда я обновить страницу, она excutes без ограничена на странице, я не знаю, почему, но, в тузде таблице, она содержит только три слайд-шоу? поэтому мой компьютер повесил трубку и заставил закрыть браузеры. что случилось с моим кодом здесь?

ответ

1

По вашему определению функции, ваш код будет

$rs=$objMysql->query("SELECT * FROM slideshow"); 
while ($dataSlideshow = $objMysql->fetch($rs)) { 
<h1><?php echo $dataSlideshow['images']; ?></h1> 
} 

И заменить это определение функции

public function fetch($rs) { 

     $row = mysqli_fetch_assoc($rs); 

     return $row; 
    } 
+0

до сих пор не работает Mr.Rohit, возможно, что мой класс имеет неправильный/плохой код? –

+0

его работая сейчас, большое спасибо, мистер Рохит !! –

0

Каждый раз, когда вы делаете

$fetch = mysqli_fetch_assoc($this->query($setFetch)); 

функцию $this->query пробеги и выполняет запрос , Поэтому он никогда не остановится. Даже если вы пройдете $rs до fetch, функция - fetch будет по-прежнему приносить вам один результат.

Таким образом, я думаю, вы должны перебирать результаты без функции fetch:

$objMysql = new mysql(); 
$con = $objMysql->connect("localhost" , "root" , "root" , "test"); 

while ($dataSlideshow = mysqli_fetch_assoc($objMysql->query("SELECT * FROM slideshow"))) { 
    // do something 
} 
+0

этот один вызывает бесконечный цикл, но, я ценю ур ответ. Большое вам спасибо г-н У_миндер! –