Проблема в том, что когда я go обновляю строку из обновления. php странице можно обновить строку с тем же адресом электронной почты и списком, который был вставлен в таблицу ранее. Я хочу добавить некоторые условия, которые помогут мне предотвратить дублирование одного и того же электронного письма и перекатывать.
$exist_query = mysqli_query($link, "SELECT * FROM tbl_student WHERE st_email = '$_POST[email]'");
$row_cnt = mysqli_num_rows($exist_query);
if($row_cnt>=1){
throw new Exception('Email already exists');
}
else {
$query = "UPDATE tbl_student SET st_name = '$_POST[name]', st_roll = '$_POST[roll]', st_email = '$_POST[email]' WHERE id = $id";
$query_run = mysqli_query($link,$query);
$success_message = 'Data has been updaed successfully';
}
после использования этих кодов данные таблицы в основном выглядят так:
когда я пытался обновить имя с alexa на alex, он говорит, что электронная почта уже существует , и я не могу обновить ни одно из этих полей. Я хочу обновить данные без дублирования рулона и адреса электронной почты. Как я могу это сделать?
Еще, чтобы сказать, что когда я изменил индексы st_roll и st_email на UNIQUE, он работает без дублирования roll и email. После выполнения УНИКАЛЬНОГО я попробовал эти коды
$query = "UPDATE tbl_student SET st_name = '$_POST[name]', st_roll = '$_POST[roll]', st_email = '$_POST[email]' WHERE id = $id";
$query_run = mysqli_query($link,$query);
if($query_run){
$success_message = 'Data has been updaed successfully';
}
else {
throw new Exception('Data already exists');
}
Я могу только сказать, что данные уже существуют. Но я хочу быть более точным c, который дублирует электронную почту или дублирует номер ролла? Какие условия я могу подать, чтобы быть более точным c?
NB: Извините за мой плохой Engli sh.