У меня есть форма, которая добавляет/редактирует событие. А именно, я хотел бы расширить его с помощью функции добавления значения автоматически (так же, как приращение и ++). У меня есть statistic_tips в базе данных, содержащей две строки: stat_win и stat_false Только во время редактирования (потому что в принципе редактирование обычно состоит в изменении одной записи) после внесения изменений, я хотел бы автоматически увеличить строку stat_win или stat_false в зависимости от выбранной опции (выигрыш, проигрыш от результатов). Как вы это достигаете, дорогая? Незамедлительный? Возможно, мне хотелось бы услышать лучшие решения с приятным желанием. Я прошу прощения за ошибочный вопрос, но я новичок. В красном я отметил фрагмент, где я попытался понять это, но, к сожалению, это не удалось.
<?php
function undefinedIndex(){
}
set_error_handler("undefinedIndex", E_NOTICE);
if(isset($_POST['add_tip'])){
$team1=$_POST['team1'];
$team2=$_POST['team2'];
$league=$_POST['league'];
$datentime=$_POST['datentime'];
$draw=$_POST['draw'];
$results=$_POST['results'];
$sql_insert="INSERT INTO premium_tips(datentime, league, team1, team2, draw, results) VALUES ('$datentime','$league','$team1','$team2','$draw','$results')";
if ($conn->query($sql_insert) === TRUE) {
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
if(isset($_POST['update_tip'])){
$team1=$_POST['team1u'];
$team2=$_POST['team2u'];
$league=$_POST['leagueu'];
$datentime=$_POST['datentimeu'];
$draw=$_POST['drawu'];
$results=$_POST['resultsu'];
$id=$_POST['id'];
[color="#FF0000"] $win1=$mysqli->query('SELECT stat_win FROM statistic_tips');
$loss1=$mysqli->query('SELECT stat_false FROM statistic_tips');
if($results=="win"){
$sql_insert="
UPDATE statistic_tips (stat_win) VALUES '$win1+=1'";
}
if($results=="loss"){
$sql_insert="
UPDATE statistic_tips (stat_false) VALUES '$loss1+=1'";
}[/color]
$sql_insert="
UPDATE premium_tips SET datentime='$datentime', league='$league',team1='$team1', team2='$team2',draw='$draw', results='$results' WHERE id='$id'";
if ($conn->query($sql_insert) === TRUE) {
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
?>
И вот файл, отвечающий за форму редактирования
$sql_get = "SELECT * FROM matches WHERE match_id='$q'";
$result = $conn->query($sql_get);
if($result->num_rows>0){
while($row = $result->fetch_assoc()){
echo '<form role="form" method="post" action=""
onreset="resetAction()">
<div class="form-group">
<label>Match info</label>
<input class="form-control" placeholder="Date of match" type="datetime-local" name="datentime" required><br>
<input class="form-control" placeholder="League" name="league" required><br>
<input class="form-control" placeholder="Stadium" name="stadium" required>
</div>
<div class="form-group">
<label>Home</label>
<input class="form-control" placeholder="Enter team name" name="team1" required>
</div>
<div class="form-group">
<label>Away</label>
<input class="form-control" placeholder="Enter team name" name="team2" required>
</div>
<button type="submit" class="btn btn-default" name="add_match">Add Match</button>
<button type="reset" class="btn btn-default">Reset</button>
</form>';
Фактически, я имею в виду автоматическую статистику по диаграмме WON/LOSS. В начале при добавлении каждый тип имеет $ result = actual, а при редактировании он изменяется на $ result = win или $ result = loss. Я не знаю, если он хорошо сочетается с этими статистическими данными.
UPDATE statistic_tips (stat_win) VALUES '$win1+=1'
Это недопустимый синтаксис SQL.
Что вы ищете:
UPDATE statistic_tips SET stat_win = stat_win + 1 WHERE id = ?
Обратите внимание, что вам не нужно заранее выбирать предыдущее значение из базы данных - запрос UPDATE будет увеличивать его.