Не могу вставить и обновить одновременно

У меня есть код ниже, и я не могу понять, почему он не работает. Проблема в том, что я могу вставить в него сообщение, но когда я пытаюсь обновить сообщение, вместо этого создается новая страница для обновления.

Я пытался удалить isset от if(isset($_POST['id']) != 'null') и обновление работает, но тогда вставка больше не работает.

Есть идеи, что не так с моим кодом? Благодарю.

    <?php 

        if(isset($_POST['submitted']) == 1) 
        {

            $title = mysqli_real_escape_string($dbc, $_POST['title']);
            $header = mysqli_real_escape_string($dbc, $_POST['header']);
            $body = mysqli_real_escape_string($dbc, $_POST['body']);

            if(isset($_POST['id']) != 'null')
            {
                $q = "UPDATE pages SET user = $_POST[user], title = '$title', header = '$header', body = '$body' WHERE id = $_GET[id]";
            }
            else
            {
                $q = "INSERT INTO pages (user, title, header, body) VALUES ($_POST[user], '$title', '$header', '$body')";
            }


            $r = mysqli_query($dbc, $q);

            if($r)
            {
                $message = '<p>Page was added!</p>';
            } 
            else 
            {

                $message = '<p>Page could not be added because:</p>'.mysqli_error($dbc);
                $message .= '<p>'.$q.'</p>';
            }

        }
    ?>

3 ответа

Решение

Вы используете почту и получаете одновременно. сначала проверьте, когда это сообщение или получить. тогда просто выполните проверку isset()

<?php 

    if(isset($_POST['submitted']) == 1) 
    {

        $title = mysqli_real_escape_string($dbc, $_POST['title']);
        $header = mysqli_real_escape_string($dbc, $_POST['header']);
        $body = mysqli_real_escape_string($dbc, $_POST['body']);

        if(isset($_GET['id']) && $_GET['id']!="")

        {
            $q = "UPDATE pages SET user = $_POST[user], title = '$title', header = '$header', body = '$body' WHERE id = $_GET[id]";
        }

        else

        {
            $q = "INSERT INTO pages (user, title, header, body) VALUES ($_POST[user], '$title', '$header', '$body')";
        }


        $r = mysqli_query($dbc, $q);

        if($r)
        {
            $message = '<p>Page was added!</p>';
        } 

        else 
        {

            $message = '<p>Page could not be added because:</p>'.mysqli_error($dbc);
            $message .= '<p>'.$q.'</p>';
        }

    }
?>
use this code:  if(isset($_POST['id'] && $_POST['id']!= '')

Попробуй это:

if(isset($_POST['id']) AND $_POST['id'] != 'null')
Другие вопросы по тегам