Здравствуйте.
Есть код, который я прикрепил ниже, при нажатии на кнопку скрипт обновляет значение поля в БД, или при необходимости создаёт новую строку с нужным значением.
Но таких кнопок на сайте 4, и я не думаю, что дублировать столько строк кода 4 раза будет эффективно. Можно ли как-то это всё прогнать через цикл, чтобы избавиться от дублирования кода?
Важный момент: переменная $one изменяет своё значение от кнопке к кнопке, поэтому нужно чтобы код, который будет зациклен учитывал это, и изменял значение на нужное.
if ( isset($_POST['one']) ) {
$one = 1;
$sql = $db->prepare("SELECT * FROM `table_name` WHERE `table_value` = :table_value AND `table_value` = :table_value");
$sql->bindParam(":table_value", $table_value, PDO::PARAM_INT);
$sql->bindParam(":table_value", $table_value, PDO::PARAM_INT);
$sql->execute();
$count = $sql->rowCount();
$result = $sql->fetch(PDO::FETCH_ASSOC);
if ( $count > 0 ) {
if ( $result['table_value'] != 1 ) {
$sql = $db->prepare("UPDATE `table_name` SET `table_value` = :table_value");
$sql->bindParam(":table_value", $one, PDO::PARAM_INT);
$sql->execute();
} else {
echo 'Status: 1';
}
} else {
$sql = $db->prepare("INSERT INTO `table_name` (`table_value`, `table_value`, `table_value`) VALUES (:table_value, :table_value, :table_value)");
$sql->bindParam('table_value', $table_value, PDO::PARAM_INT);
$sql->bindParam('table_value', $table_value, PDO::PARAM_INT);
$sql->bindParam('table_value', $one, PDO::PARAM_INT);
$sql->execute();
}
}