Редактирование записей в бд

171
13 ноября 2017, 22:16

Добрый день. Необходимо производить редактирование данных в базе данных. Сначала я выбираю нужную таблицу. HTML:

<div class="col-lg-3" id = "block3">
    <form id="form_edit">
        <label>Редактирование</label>
        <select class="form-control" name="edit" id = "edit">
            <option value = "category">category</option>
            <option value = "image">image</option>
            <option value = "model">model</option>
            <option value = "news">news</option>
            <option value = "users">users</option>
        </select>
        <input type="button" id="edit_send" value = "Редактировать запись">
    </form>
</div>
<script>
    $('#edit_send').on('click',function(){
            var table = $('#edit').val();
            $.ajax({
                type : "POST",
                url: "admin_edit_script.php",
                data: {table:table},
                success : function(result){
                    url = "admin_form_edit.php" + '?param1='+table;
                    window.location.href = url;
                },
                error: function(xhr, resp, text) {
                    console.log(xhr, resp, text);
                }
            })
        }
    );
    <script>

Передаю имя таблицы в другой файл и формирую поля.

if($_GET["param1"] == 'image') {
    $sql = "SELECT * FROM image order by id";
    $result = pg_query($connect, $sql);
    echo "<form method = 'post' action = 'admin_edit_script.php'>";
    while ($row = pg_fetch_array($result)) {
        echo '<input type = checkbox id = "id" name = "id" value="'.$row["id"].'">
        <input type = "text" id = "primary_name" name = "primary_name" value ="' . $row["primary_name"] . '">
<input type = "text" id = "secondary_name" name = "secondary_name" value ="' . $row["secondary_name"] . '">
<input type = "text" id = "link" name = "link" value ="' . $row["link"] . '">
 <br>';
    }
    echo "<input type='hidden' id = 'table' name = 'table' value = '".$_GET['param1']."'><input type='submit'></form>";
}

Как задумывал я. В чекбоксе содержится id записи. При нажатии на кнопку нужно отправить данные в другой файл для выполнения запроса на Update и обновить ту запись, у которой id совпадает с выбранным id. Но по итогу у меня все поля при обновлении получают значения последнего поля. Вот на фотографии видно: я отмечал поле и редактировал. Но в итоге все поля получают значения из последних полей. Подозреваю, что это из-за того, что у всех инпутов одинаковые имена. Сам запрос:

    if(($_POST["table"] == "image") and (isset($_POST["id"]))){
   $id = intval($_POST["id"]);
        $sql = "update image set primary_name = '".$_POST["primary_name"]."', secondary_name = '".$_POST["secondary_name"]."', link = '".$_POST["link"]."' where id = '".$id."'";
        $result = pg_query($connect, $sql) or die("fgdgdfg");
    }

Подскажите, как всё правильно организовать? Ибо не имел нормального опыта по редактированию данных в таблице через PHP. Сама таблица

READ ALSO
Laravel api не работает

Laravel api не работает

Добрый день! Подскажите, пожалуйста, не могу разобраться

292
обработка html страницы

обработка html страницы

помогите как из этого:

302
Экранирование знака ? в preg_match

Экранирование знака ? в preg_match

Есть следующая функция:

282