2017-12-22 16 views
0

イベントを追加/編集するフォームがあります。 つまり、値を自動的に追加する機能(インクリメントと++のように)を拡張したかったのです。 私はデータベースにstat_winとstat_falseの2行を含むstatistic_tipsを持っています。 変更の後で編集中(原則的に編集は通常は1つのレコードを変更することになるため)のみ、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 = winまたは$ result = lossに変更されました 彼がこれらの統計とうまく組み合わせられているかどうかはわかりません。

+0

データベースから直接コーディングする必要がない場合は、トリガーをチェックできます。 http://www.mysqltutorial.org/create-the-first-trigger-in-mysql.aspx – Oras

+0

行を変更した後に動作するトリガーは何ですか? –

+0

for modify私はあなたが更新を意味すると仮定します。このリンクをチェックアウトしてください。http://www.mysqltutorial.org/mysql-trigger-implementation.aspx – Oras

答えて

0
UPDATE statistic_tips (stat_win) VALUES '$win1+=1' 

これは有効なSQL構文ではありません。

あなたが探していることです:あなたは、事前にデータベースから前の値を選択する必要はありません

UPDATE statistic_tips SET stat_win = stat_win + 1 WHERE id = ? 

注 - UPDATEクエリが所定の位置にそれをインクリメントします。

+0

エラーはありませんが、statistic_tipsに何も追加しません。 私も試しました: INSERT INTO statistic_tips(stat_win、stat_false)VALUES( '1'、 '0') "; –

関連する問題