2016-04-04 18 views
0

readOne işlevim var. Bu işlev, kategori tablosundan sadece bir kayıt okuyacak ve değerleri ve açıklama değişkenlerine değer atayacaktır. Bu şuna benzer:Bir veritabanından seçili kaydın görüntülenmesi

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']; 
} 

ve ben kullanarak bu aramaya çalışıyorum bu:

<?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> 

herhangi hata almıyorum ama bir kategori numarası ve basın yazmak sonra da hiçbir şey happends Düğme nasıl düzeltilir? veritabanına

Bağlantı:

<?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

readOne öğesinin dönüş değerini yankılanıyorsunuz, ancak herhangi bir geri dönüş deyimine sahip olmadığından, her zaman sıfır olacak – cske

cevap

1

Kişisel readOne fonksiyonlar geriye döndürür. ReadOne işlevini şu şekilde değiştirin:

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

Bu işlev şimdi adı ve açıklaması olan bir dize döndür. readOne()

1

, dönüş bildirimi olmadığı için hiçbir şey döndürmez. Ayrıca, lütfen $id numaranızın boş bırakılmaması gerektiğini kontrol edin.

İlgili konular