Как определить поля или столбцы в базе данных mysql, которая была обновлена? - PullRequest
0 голосов
/ 05 ноября 2018

Я занимаюсь разработкой приложения с использованием концепции MVC и хочу сохранить таблицу, в которой хранятся записи столбцов из разных таблиц, которые были обновлены.

это запрос в моем контроллере:

if(!$error) {
    $NAME           = $_POST["NAME"];
    $FNAME          = $_POST["FNAME"];
    $SNAME          = $_POST["SNAME"];
    $DNAME          = $_POST["DNAME"];
    $DOB            = $_POST["DOB"];
    $IDMARK         = $_POST["IDMARK"];
    $ES1NAME        = $_POST["ES1NAME"];
    $ES2NAME        = $_POST["ES2NAME"];
    $LANG1          = $_POST["LANG1"];
    $LANG2          = $_POST["LANG2"];
    $MATHS          = $_POST["MATHS"];
    $SS             = $_POST["SS"];
    $SCIENCE        = $_POST["SCIENCE"];


    $table = $_POST['table'];
    $id = $_POST['id'];

    $queryStr = mysql_query("UPDATE db_parent.$table SET NAME = '$NAME', FNAME = '$FNAME', SNAME = '$SNAME', DNAME = '$DNAME', DOB = '$DOB', IDMARK = '$IDMARK', ES1NAME = '$ES1NAME', ES2NAME = '$ES2NAME', LANG1 = '$LANG1', LANG2 = $LANG2, MATHS = '$MATHS', SS = '$SS', SCIENCE = '$SCIENCE'  WHERE ID = '$id'") or die(mysql_error());

    $queryUpdate= mysql_fetch_array($queryStr);

    sys_url::redirect(sys_url::site("Department/childDepartment/Update?id=$id&table=$table"));

    return;
}

Это форма:

<form id = "form" name = "myForm" method = "POST" onsubmit = "" action = "<?= sys_url::site('Department/childDepartment/Update?id='.$_GET['id'].'&table='.$_GET['table'])?>" >
    <div class="row" >
        <input type = "hidden" name = "id" value = "<?= $_GET['id']; ?>" >
        <input type = "hidden" name = "table" value = "<?= $_GET['table']; ?>" >
        <div class="col-lg-2 col-xs-12 col-sm-6" >
            <label align = "left" > Name :</label >
            <div class="form-group" >
                <input class="form-control" name = "NAME" value = "<?= $student['NAME'] ?>" >
            </div >
        </div >
        <div class="col-lg-2 col-xs-12 col-sm-6" >
            <label align = "left" > Father's Name :</label>
            <div class="form-group">
                <input class="form-control" name="FNAME" value="<?= $student['FNAME'] ?>" >
            </div>
        </div>
        .
        .
        .
        .
        <div class="col-lg-2 col-xs-12 col-sm-4 pull-right">
            <div class="form-group">
                <button type="submit" value="1" name="search" class="btn btn-primary">UPDATE</button>
            </div>
        </div>
    </div>
</form>

Форма будет редактировать и обновлять поля. У меня есть еще одна таблица обновлений, которую я хотел бы записать, какие столбцы из каких таблиц были обновлены. Я не хочу вести записи целых строк, поскольку это позже перенасыщет базу данных. Как мне это сделать? Я где-то читал о триггерах и column_update (), но я не уверен, правильно ли я понял. Спасибо за всю поддержку.

1 Ответ

0 голосов
/ 08 ноября 2018

спасибо за все ваши ответы ... в любом случае, я нашел решение проблемы.

Я использовал массив для хранения старых данных из базы данных, вызвав запрос SELECT перед выполнением запроса UPDATE. И затем новые данные, поступающие из формы, сравниваются со старыми данными в массиве один за другим, используя цикл foreach. Если входящие данные совпадают с существующими, то они пропускаются. если нет, тогда я использую другой запрос на обновление, чтобы обновить таблицу новыми данными.

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