2016-04-04 15 views
0

Ich habe die Funktion readOne. Diese Funktion liest nur einen Datensatz aus der Kategorietabelle und weist den Variablen name und description Werte zu. Es sieht wie folgt aus:Anzeige ausgewählter Datensätze aus einer Datenbank

require_once('../config/Database.php'); 

class Category { 
    private $conn; 
    private $id; 
    private $name; 
    private $description; 
    private $created; 

public function __construct($db) { 
    $this->conn = $db; 
} 

public function readOne($id) { 
    $stmt = $this->conn->prepare('SELECT name, description FROM categories WHERE id = "'.$id.'"'); 
    $stmt->execute(); 
    $result = $stmt->fetch(PDO::FETCH_ASSOC); 
    $this->name = $result['name']; 
    $this->description = $result['description']; 
} 

und ich versuche, dies zu nennen mit diesem:

<?php 
if($_SERVER['REQUEST_METHOD'] == 'POST'){ 
if (isset($_POST['read'], $_POST['id'])) { 

    $cat = new Category($conn); 

    $id = filter_input (INPUT_POST , 'id', FILTER_SANITIZE_NUMBER_INT); 


    echo $cat->readOne($id); 
}} 
?> 
<div> 
<h3>readOne():</h3> 
<form action="" method="post"> 
<label>Category id :</label> 
<input type="text" name="id" id="id" required="required" placeholder="Please Enter Id"/><br /><br /> 
<input type="submit" value="read" name="read"/><br /> 
</div> 

ich keine Fehler bekommen, aber auch nichts happends, nachdem ich die Kategorie-ID ein und drücken Sie schreiben der Knopf, wie man es repariert?

Verbindung zur Datenbank:

<?php 

class Database { 

public function getConnection() { 
    $result = false; 
    try { 
     $result = new PDO('mysql:host=localhost;dbname=demo', 'root', ''); 
    } catch(PDOException $e) { } 
    return $result; 
} 
} 
$db = new Database(); 
$conn = $db->getConnection(); 
if (!$conn) { 
die("Error connecting to the database"); 
} 

?> 
+0

Sie geben den Rückgabewert von readOne zurück, aber dieser enthält keine return-Anweisung, so dass er immer null ist – cske

Antwort

1

Ihre readOne Funktion gibt nichts. Ändern Sie die readOne-Funktion wie folgt:

public function readOne($id) { 
    $stmt = $this->conn->prepare('SELECT name, description FROM categories WHERE id = "'.$id.'"'); 
    $stmt->execute(); 
    $result = $stmt->fetch(PDO::FETCH_ASSOC); 
    $this->name = $result['name']; 
    $this->description = $result['description']; 
    return $this->name.$this->description; 
} 

Diese Funktion gibt jetzt eine Zeichenfolge mit dem Namen und einer Beschreibung zurück.

1

Ihre readOne() Funktion gibt nichts zurück, da es keine Rückgabeanweisung gibt. Bitte überprüfen Sie auch Ihre $id darf nicht leer sein.

Verwandte Themen