2017-05-17 12 views
0

こんにちは私はPHPで簡単なMVCを作成する方法を学習していますが、クラス関数内でクエリを実行するのに少し問題があるようです。phpクラス関数内でクエリが実行されていません

コードをクラス関数から取り除くと、正常に動作します。しかし、彼らはコードが内部にあるときには動作しません。どんなアイデアにも感謝します。クラスのインスタンスを作成するためにあなたが持っているクラスの外部から関数を呼び出すために

<?php 
include_once("model/book.php"); 

class Model { 

public function getBookList() 
{ 
$conn=mysqli_connect("localhost","Ory4n","","test"); 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 
$sql = "SELECT Title, Author, Description FROM books"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
while($row = $result->fetch_assoc()) { 
echo '<h2 class="word">'.$row["Title"].'</h2>'; 
echo '<h4 class="word">'.$row["Author"].'</h4>'; 
echo '<p class="word">'.$row["Description"].'</p>'; 
} 
} else { 
echo "0 results"; 
} 
} // close function 

public function getBook($title) 
{ 
getBookList(); 
} 
} 
?> 
+0

** $モデル=新モデル(); ** ** $ model-> getBookList(); ** – user3519936

+0

または、getBook関数のようにクラス内から呼び出そうとすると、このようにする必要があります。** $ this-> getBookList (); ** – user3519936

+0

こんにちは、あなたの援助に感謝します。どこでインスタンスを作成しますか? getBookList関数の中で? –

答えて

0

コメントをまとめると...

<?php 
class Model { 

    /** 
    * @return array Empty array in case of no results 
    */ 
    public function getBookList() { 
     $conn=mysqli_connect("localhost","Ory4n","","test"); 

     if($conn->connect_error) { 
      die("Connection failed: " . $conn->connect_error); 
     } 

     $sql = "SELECT Title, Author, Description FROM books"; 
     $result = $conn->query($sql); 

     $books = array(); 

     if ($result->num_rows > 0) { 
      while ($row = $result->fetch_assoc()) { 
       $book = new stdClass(); 
       $book->title = $row['Title']; 
       $book->author = $row['Author']; 
       $book->description = $row['Description']; 
       $books[] = $book; 
      } 
     } 

     return $books; 
    } 
} 

//Demo - how to use 
$model = new Model(); 
$books = $model->getBookList(); 

foreach($books as $book) { 
    echo '<h2 class="word">'.$book->title.'</h2>'; 
    echo '<h4 class="word">'.$book->author.'</h4>'; 
    echo '<p class="word">'.$book->description.'</p>'; 
} 
?> 
+0

ありがとう、このコードは、私のほうがずっと意味があります。助けを感謝し、私は実際にあなたがそれを書いたようにコードを理解することができます。 –

+0

あなたは歓迎です、受け入れられたとして私の答えをマークしてください – user3519936

+0

こんにちは、私は15の回答をupvoteまたはそれが言った何かの評判を持っていません。 –

関連する問題