Получение записи по id

1994
07 января 2018, 07:38

Создал не большой ProductList, заполнил таблицу данными, отобразил их на общей страницы. Не могу получить единственную запись по ключу. получаю только первую запись из таблицы, не важно какой бы id= был в ссылке. http://localhost/ListOPP/bookid.php?id=1 и http://localhost/ListOPP/bookid.php?id=9 отобразить данные первой записи. В процедурном стиле всё получилось, хочу на опп весь ProductList переписать.

Код класса books, и функиции.

// database connection and table name
private $conn;
private $table_name = "Books";
// object properties
public $id;
public $scu;
public $img;
public $name;
public $author;
public $description;
public $weight;
public $price;
public function __construct($db){
    $this->conn = $db;
}
function readAll(){
    $query = "SELECT
            *
        FROM
            " . $this->table_name . " ORDER BY
            id DESC";
    $stmt = $this->conn->prepare( $query );
    $stmt->execute();
    return $stmt;
}
function readOne(){
    $query = "SELECT
            *
        FROM " . $this->table_name;
    $stmt = $this->conn->prepare( $query );
    $stmt->bindParam(1, $this->id);
    $stmt->execute();
    $row = $stmt->fetch(PDO::FETCH_ASSOC);
    $this->id = $row['id'];
    $this->scu = $row['scu'];
    $this->img = $row['img'];
    $this->name = $row['name'];
    $this->author = $row['author'];
    $this->description = $row['description'];
    $this->weight = $row['weight'];
    $this->price = $row['price'];
}
}

Также делал такой вот запрос, но почему возвращает только 3 запись из таблицы, не важно какой id в ссылке указан.

$query = "SELECT
            *
        FROM " . $this->table_name . "
        WHERE
            id = ?
        LIMIT
            0,1";

Так выглядит доступ из общего файла books.php

$books = new Books($db);
    $stmt = $books->readAll();
    while ($books = $stmt->fetch(PDO::FETCH_ASSOC)) {
        extract($books);
        echo "<div data-price='{$price}' class='item'>";
        echo "<a href='bookid.php?id={$id}'><img class='product' 
src='UI/images/{$img}'></a> ";
        echo "<div class='info'>";

И код из bookid.php

<?php
// get ID of the product to be read
$id = isset($_GET['id']) ? $_GET['id'] : die('ERROR: missing ID.');
// include database and object files
include_once "UI/header.php";
include_once 'DB/database.php';
include_once 'Objects/books.php';
// get database connection
$database = new Database();
$db = $database->getConnection();
// prepare objects
$books = new books($db);
// set ID property of product to be read
$books->id = $id;
// read the details of product to be read
$books->readOne();
READ ALSO
Как разбить сложную строку на массив?

Как разбить сложную строку на массив?

Нужно распилить строку на массивСтрока:

286
Сносил PHP с Ubuntu. Так вышло, что удалилась папка var/lib/php

Сносил PHP с Ubuntu. Так вышло, что удалилась папка var/lib/php

Сейчас ставлю phpmyadmin, на странице логгина выскакивает предупреждение, что папки var/lib/php/sessions нет, зашёл, чекнулПосле переустановки появилась...

285
проблема с подключением с DB , PHP PDO

проблема с подключением с DB , PHP PDO

Привет всем, у меня проблема с пдо , хочу подключится к базе, --> Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1045] Access denied for user 'wm65389_rafael'@'localhost' (using...

271
Вопрос по регулярным выражениям

Вопрос по регулярным выражениям

Как мне из "https://laravelcom/docs/5

263