Не могу получить сообщение из базы данных SQL

Привет, я пытаюсь получить данные из моего sql с идентификатором, post_author, post_date, post_content, post_title и post_status.

Прямо сейчас мой основной для post.php это

<?php require_once("../../includes/session.php"); ?>
<?php require_once("../../includes/db_connection.php"); ?>
<?php require_once("../../includes/functions.php"); ?>
<?php
$post = "";
$id = 1;
// ^'will be using $_GET['id'] to get current post
find_post_by_id($id, $public=true);
?>
<?php include("../../includes/layouts/header.php") ?>

<div class="container post">
    <h1><?php echo htmlentities($post["post_title"]); ?></h1>
    <p>Auther & postdate n time</p>
    <hr class="hrpost">
    <div class="content">
        Content in form of the text
    </div>
</div>

<?php include("../../includes/layouts/footer.php") ?>

и в functions.php у меня есть это

function confirm_query($result_set) {
    if (!$result_set) {
        die("Database query failed.");
    }
}

function find_post_by_id($post_id, $public=true) {
    global $connection;

    $safe_page_id = mysqli_real_escape_string($connection, $post_id);

    $query  = "SELECT * ";
    $query .= "FROM posts ";
    $query .= "WHERE id = {$safe_page_id} ";
    if ($public) {
        $query .= "AND post_status = \"publish\" ";
    }
    $query .= "LIMIT 1";
    $post_set = mysqli_query($connection, $query);
    confirm_query($post_set);
    if($post = mysqli_fetch_assoc($post_set)) {
        return $post;
    } else {
        return null;
    }
}

а затем, когда я пытаюсь понять это, он говорит ->

Предупреждение: недопустимое смещение строки 'post_title' в строке D 13.

Почему так и как исправить???


person Community    schedule 20.02.2016    source источник
comment
$post не является массивом, может возвращать значение null. попробуйте var_dump($post);   -  person Ekin    schedule 20.02.2016
comment
Извините, это было mysqli_fetch_assoc, я редактировал @Ekin :) И если это то, где вы его разместили   -  person    schedule 20.02.2016


Ответы (1)


Это может быть то, что вы ищете.

$post = find_post_by_id($id, $public=true);

Если запрос не возвращает то, что вам нужно, обязательно распечатайте или зарегистрируйте запрос. Затем запустите этот запрос на консоли mysql, чтобы дважды проверить, что он действительно что-то возвращает.

person Tim Hysniu    schedule 20.02.2016
comment
Чувак Спасибо! Он вернул TEST :) в качестве заголовка сообщения, за что большое спасибо @timhysniu - person ; 20.02.2016