2016-04-23 14 views
1

私は、データベースに接続する機能(成功している)とSQL文を含む関数getEventを持つ別のphpファイルを持っています。 以下のコードは、データベースから1つのデータ行を正常に取得しますが、テーブルからすべてのデータを返す必要があります。どのようにPHPを使用してmysqlデータベースからすべてのデータを取得するには?

<?php 
// include db connect class 
require_once 'include/DB_Functions.php'; 

// connecting to db 
$db = new DB_Functions(); 

// array for JSON response 
$response = array(); 

// get all events from events table 
$event = $db->getEvent(); 

// check for empty result 
if($event !=FALSE){ 


    $response["error"]=FALSE; 
    $response["uuid"] = $event["eventID"]; 
     $response["eventdetails"]["title"] = $event["title"]; 

echo json_encode($response); 

}else{ 
$response["error"]=TRUE; 
$response["error_msg"] = "No events to display"; 
     echo json_encode($response); 
} 

?> 

GETEVENT方法

public function getEvent(){ 
    $stmt= $this->conn->prepare("SELECT * from eventdetails"); 
    $stmt->execute(); 
    $event= $stmt->store_result(); 
    if ($stmt->execute()) { 
     $event = $stmt->get_result()->fetch_assoc(); 
     $stmt->close(); 
     return $event; 
    } else { 
     // events dont existed 
     $stmt->close(); 
     return null; 
    } 
+0

fetchAll()方法を使用し、クエリのすべての結果を含む配列を返す場合そのイベントが単一のイベントのみを返すように見えるので、イベントテーブルからのイベント "は正しいとは思われません。すべてのイベントを配列として取得する関数をDB_Functionsに作成する必要があるようです。 – Chris

+0

データを配列として返す方法の例を教えてください。これは私が分で使用している関数です。パブリック関数getEvent(){ \t \t $ stmt = $ this-> conn-> prepare( "SELECT * from eventdetails"); \t $ stmt-> execute(); $イベント= $ stmt-> store_result(); \tもし$ stmt-> get_result() - > fetch_assoc(); $ stmt-> close(); return $ event; } else { //イベントが存在しません $ stmt-> close(); return null; } –

+0

あなたのデータベースコードを投稿していないので、かなり難しいです。 mysqliやPDOを使用しているかどうか、mysqliを前提とした手続き型のインタフェースかオブジェクト指向のインタフェースかはわかりません。 [この回答](http://stackoverflow.com/a/11264436)多少でも助けることができるかもしれません。 – Chris

答えて

0

youwantはコメント「すべてを取得するPDOStatementクラス

public function getEvent(){ 

    $stmt = $this->conn->prepare("SELECT * from eventdetails"); 
    $stmt->execute(); 
    $events = $stmt->fetchAll(); 
    return $events; 
} 
+1

fetchall()メソッドを試してみましたが、使用すると致命的なエラーが出ます:定義されていないメソッドmysqli_stmt :: fetchAll()を呼び出します。 –