2016-04-23 4 views
1

Ich habe eine andere PHP-Datei, die die Funktion hat, eine Verbindung zur Datenbank herzustellen (tut dies erfolgreich) und auch eine Funktion getEvent, die die SQL-Anweisung enthält. Der folgende Code ruft erfolgreich eine Datenzeile aus der Datenbank ab, aber ich brauche sie, um alle Daten aus der Tabelle zurückzugeben.Wie alle Daten aus MySQL-Datenbank mit PHP abrufen?

<?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); 
} 

?> 

die GetEvent Methode

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

Ihr Kommentar „alle bekommen Ereignisse aus der Ereignistabelle "scheint nicht korrekt zu sein, da diese Funktion scheinbar nur ein einzelnes Ereignis zurückgibt. Es sieht so aus, als müssten Sie in 'DB_Functions' eine Funktion erstellen, die alle Ereignisse als Array abruft. – Chris

+0

Können Sie mir ein Beispiel geben, wie die Daten als Array zurückgegeben werden? Dies ist die Funktion, die ich gerade nutze. public function getEvent() { \t \t $ stmt = $ this-> conn-> vorbereiten ("SELECT * from eventdetails"); \t $ stmt-> execute(); $ event = $ stmt-> store_result(); \t if ($ stmt-> execute()) { $ ereignis = $ stmt-> get_result() -> fetch_assoc(); $ stmt-> close(); Rückgabe $ Ereignis; } else { // Ereignisse existieren nicht $ stmt-> close(); Rückgabewert null; } –

+0

Das ist ziemlich schwierig, da Sie nichts von Ihrem Datenbankcode gepostet haben. Ich weiß nicht einmal, ob Sie mysqli oder PDO verwenden und ob es die prozedurale oder objektorientierte Schnittstelle ist, wenn man annimmt, dass es mysqli ist. [Diese Antwort] (http://stackoverflow.com/a/11264436) könnte allerdings etwas helfen. – Chris

Antwort

0

Wenn youwant ein Array zurück, alle Ergebnisse aus einer Abfrage enthält, verwenden Sie dann die fetchAll() Methode der PDOStatement Klasse

public function getEvent(){ 

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

Ich habe die Methode fetchall() ausprobiert, wenn ich sie benutze, erhalte ich einen Fehler, der Fatal error: Aufruf zu undefinierter Methode mysqli_stmt :: fetchAll(). –