как обновить строковое значение в php с pdo - PullRequest
0 голосов
/ 03 марта 2019

я пытаюсь обновить поле статуса в таблице комментариев, но это не удается.

это моя форма:

  <?php
                        if ($result['comment_status'] == "approved") {
                        ?>
                        <form action="" method="post">
                            <input type="hidden" name="comment_id" value="<?php echo $result['comment_id'] ?>">
                            <button type="submit" name="disapproved" class="btn btn-primary btn-sm">DisApprove
                            </button>
                        </form>
                        <?php
                        } else {
                            ?>
                            <form action="" method="post">
                                <input type="hidden" name="comment_id" value="<?php echo $result['comment_id'] ?>">
                                <button type="submit" name="approved" class="btn btn-primary btn-sm">Approve</button>
                            </form>
                            <?php
                        }
                        ?>

и это мой php-код (запрос):

if (isset($_POST['comment_id']) && is_numeric($_POST['comment_id']) && $_POST['comment_id'] > 0) {
                $comment_id = $_POST['comment_id'];
            }

 if (isset($_POST['disapproved'])) {
                $query = $connection->prepare("UPDATE comments SET comment_status = 'approved' WHERE comment_id = $comment_id");

                confirm($query->execute(), "Comment approved successfully", "info");
            }

            if (isset($_POST['approved'])) {
                $query = $connection->prepare("UPDATE comments SET comment_status = 'disapproved' WHERE comment_id = $comment_id");

                confirm($query->execute(), "Comment disapproved successfully", "info");
            }

Я не знаю, почему это не обновление

1 Ответ

0 голосов
/ 03 марта 2019

слишком много дублирования кода ...

<form action="" method="post">
    <input type="hidden" name="comment_id" value="<?php echo $result['comment_id'] ?>">
    <input type="hidden" name="status" value="<?=($result['comment_status'] == "approved")?>">
    <button type="submit" class="btn btn-primary btn-sm"><?= ($result['comment_status'] == "approved" ? 'DisApprove' : 'Approve' ) ?></button>
</form>

php code.Вы должны связать comment_id и status

if (isset($_POST['comment_id']) & ... && isset($_POST['status'])) {
    $comment_id = $_POST['comment_id'];
    $status = $_POST['status'] ? 'disapproved' : 'approved';
    $query = $connection->prepare("UPDATE comments SET comment_status = :status WHERE comment_id = :comment_id");
    $query->bindValue(':comment_id', $comment_id, PDO::PARAM_INT);
    $query->bindValue(':status', $status, PDO::PARAM_STR); 
    confirm($query->execute(), "Comment disapproved successfully", "info");
}

Должны работать, попробуйте это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...