пытается обновить записи, но не удается в php - PullRequest
0 голосов
/ 29 октября 2018

я пытаюсь обновить запись, получив идентификатор сообщения через $ _GET, затем обновите записи через $ _POST.

Я уже выполнил действие удаления через $ _GET, оно отлично работает, также mysqli_fetch_assoc отлично работает для отображения записи для редактирования, но фактическое редактирование не происходит, это дает пустую ошибку из-за проверки в коде в пустой функции проверки .

Я провел много исследований, но, похоже, я не могу разобраться с ошибкой, я был бы благодарен, если бы кто-нибудь мог предложить какие-либо изменения в коде.

Заранее спасибо!

Это ошибка

Notice: Undefined index: id in /then the long url etc/

Ниже приведен код

<?php
 //DB Connection
  include'include/db-conn.php';
  if (isset($_POST['edit'])) {
     //Raw GET Inputs
    $raw_c_id       = $_GET['id'];

    //Cleaned Inputs
    $c_c_id         = filter_var($raw_c_id, FILTER_SANITIZE_STRING);

    //Error Mwssages
    $empty      = '<div class="alert alert-danger alert-dismissible">
                <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
                <strong>Error!</strong>Field is empty please provide content!
              </div>
              ';
    $success    = '<div class="alert alert-success alert-dismissible fixed-top">
                <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
                <strong>Success!</strong> Content Added Successfully
              </div>
              ';
    $not_success  = '<div class="alert alert-danger alert-dismissible">
                    <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
                    <strong>Not Success!</strong> Content Not Added Successfully
                  </div>
                  ';

      if (empty($c_c_id)) {
        echo $empty;
        exit();
        header("Location:index.php");
      }

      $update      = "UPDATE `continents` 
       SET `continent_name`='$c_c_name', `last_edited`='date(d/m/Y)'  
       WHERE `id`='$c_c_id'";
       $run_update  = mysqli_query($conn, $update);
      if (!$run_update) {
        header("Location: index.php");
        echo $not_success;

      }
      else{
        header("Location: index.php");
        echo $success;
      }
  }
 ?>

Это HTML-часть

<div  class="panel-body">
            <form action="edit.php" method="POST">
                <div class="form-group">
                  <label for="continent_name">Continent Name</label>
                  <input required type="text" placeholder="10" class="form-control" value="<?php echo  $c_name ; ?>" name="continent_name">
                </div>
              <small>Date Added: <?php echo  $c_dated_added ; ?></small> / <small>Last Edited: <?php echo  $c_last_edited ; ?></small>
                <div class="form-group">
                  <input class="form-control btn-success" type="submit" name="edit" value="Submit">
                </div>
              </form>
          </div>

Thid the while loop

<div class="table-responsive">
<table id="example" class="table table-hover ">
    <thead>
      <tr class="">
        <th>ID</th>
        <th>Continent Name</th>
        <th>Date Added</th>
        <th>Status</th>
        <th>Edit</th>
        <th>Delete</th>
      </tr>
    </thead>
    <tbody>
        <?php 
            $all_continents     =   "SELECT * FROM `continents` ORDER BY `status`";

            $run                    =   mysqli_query($conn,$all_continents);

            while ($row_result = mysqli_fetch_assoc($run)) {
                $id =   $row_result['id'];
                $c_continent_name = $row_result['continent_name'];
                $c_date_added = $row_result['date_added'];
                $c_status = $row_result['status'];

                echo "
                <tr>
                    <td>$id</td>
                    <td>$c_continent_name</td>
                    <td>$c_date_added</td>
                    <td>$c_status</td>
                    <td>
                        <a class='btn btn-info' href='edit.php?id=$id'>Edit</a>
                    </td>
                    <td>
                        <a class='btn btn-danger'  href='delete.php?id=$id'>Delete</a>
                    </td>
                </tr>
                ";
            }
         ?>
    </tbody>
</table>

1 Ответ

0 голосов
/ 29 октября 2018

Похоже, вы пытаетесь использовать параметры GET и POST одновременно. Причина, по которой он не работает, заключается в том, что параметр GET теряется при отправке формы. Вам нужно передать его в атрибуте действия формы:

<form action="edit.php?id=<?php echo $_GET['id'] ?>" method="POST">

Пожалуйста, взгляните также на совет в этом посте: Есть ли способ использовать GET и POST вместе?

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