Могу ли я дать разрешение пользователю изменять таблицу только с его данными?

один из способов сделать это - объявить переменную.

var inputValue;
$('#checkbox').change(function(){ 
    if ($('#checkbox').is(':checked')){
        inputValue = $('.test').val();
        $('.test').val('');
    } else {
        $('.test').val(inputValue);
    }
});

Для нескольких полей ввода. Идея @Rashid потрясающая. Сохраните значение в атрибуте data-value. И если флажок снят, вы можете получить значения, используя атрибут data-value.

$('#checkbox').change(function() { 
    if($('#checkbox').is(':checked')) {
    $.each($('.test'),function(){
      $(this).attr('data-value',$(this).val()).val("");
    });

    } else {
$.each($('.test'),function(){
      $(this).val($(this).attr('data-value'));
});
    }
});
2
задан João Miguel 20 January 2019 в 02:01
поделиться

1 ответ

Это невозможно стандартным способом в MySQL. Вы должны использовать триггер.

Например, следующее сравнивает значение ID_USER, которое было передано в операторе обновления, с именем текущего пользователя базы данных и прерывает обновление, если они отличаются, используя синтаксис SIGNAL , чтобы поднять ошибку.

DELIMITER $

CREATE TRIGGER checkUpdateTable1
BEFORE UPDATE ON Table1
FOR EACH ROW
BEGIN

    SELECT 1 
    FROM mysql.user 
    INTO @is_root
    WHERE super_priv='Y' AND USER() = CONCAT(user, '@', host); 

    IF (@is_root IS NULL AND NEW.ID_USER <> USER()) THEN
        SIGNAL SQLSTATE '45000'
        SET MESSAGE_TEXT = 'error message';
    END IF
END
$
DELIMITER ;

Примечание: после комментария Рэймонда Нейланда я отредактировал пост, чтобы пользователи SUPER могли обновить любую строку.

0
ответ дан GMB 20 January 2019 в 02:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: