2016-03-26 14 views
0

'月と年'フィールドを正しく保存していないため、フィールドを保存することができません。私はsortcodeを作るために月と年を組み合わせたので、それは確かではありません。フォームの値をサブミットした後、月、年1 2016のデフォルト値にリセットされます。選択した値をmysqlテーブルの詳細に保存するにはどうすればよいですか?PHPフォームmysqlデータの保存を更新する

デフォルト値を格納するのではなく、月と年のフィールドを正しく格納するために、次の関数を改善する必要があります。

<?php 


$sql = "SELECT * FROM payments WHERE user_id = '".$_SESSION['user']['id']."' LIMIT 1;"; 
    $result2 = mysql_query($sql); 
    if($result2) { 
     $row2 = mysql_fetch_assoc($result2); 
    } 
    $name = (isset($row2) && !empty($row2['name'])) ? $row2['name'] : (isset($_SESSION['name']) ? $_SESSION['name'] : ''); 
    $no = (isset($row2) && !empty($row2['no'])) ? $row2['no'] : (isset($_SESSION['no']) ? $_SESSION['no'] : ''); 
    $year = (isset($row2) && !empty($row2['sortcode'])) ? explode('/',$row2['sortcode'])[0] : (isset($_SESSION['year']) ? $_SESSION['year'] : ''); 
    $month = (isset($row2) && !empty($row2['sortcode'])) ? explode('/',$row2['sortcode'])[1] : (isset($_SESSION['month']) ? $_SESSION['month'] : ''); 

エラーは、私は$結果2に$すべてのデータが削除され、デフォルト値にリセットするため、データベースに保存されていない後、それはそのセッションのために働くが、結果を削除する場合は、ここのようですか?

+0

@pualこの問題はまだ解決されていますか? – gmfm

答えて

0

「選択済み」ではなく「選択済み」のように前後で空白を試しました。 チェックは、私は、出力は次のように取得すると思います(IEのソースを表示)

を提出した後、ページのソースをallso:

<option selectedvalue="1">1</option> 

代わりの

<option selected value="1">1</option> 

そして、それは必要です月額3倍にチェックする

if (isset($month) && $month=='1') 

と思っています。

編集 - >

ケース$の月と$年がポストした後、正常udatedされている - >

$query = "INSERT INTO `details`(`user_id`, `name`, `no`, `sortcode`) 
      VALUES ("; 
     $query .= "'" . $userID . "',"; 
     $query .= "'" . $_SESSION['name'] . "',"; 
     $query .= "'" . $_SESSION['no'] . "',"; 
     $query .= "'".$month."/".$year."'"; 
     $query .= 
      ");"; 

または選択入力(ポスト後)の値を使用する - >

$query = "INSERT INTO `details`(`user_id`, `name`, `no`, `sortcode`) 
       VALUES ("; 
      $query .= "'" . $userID . "',"; 
      $query .= "'" . $_SESSION['name'] . "',"; 
      $query .= "'" . $_SESSION['no'] . "',"; 
      $query .= "'".$_POST['month']."/".$_POST['year']."'"; 
      $query .= 
       ");"; 

または、$セッションの月と年の変数の値を更新するだけです。

+0

問題は機能であり、フォームではありませんか? – paul

+0

ああ、すみません。値をセッションにどのように入れているのか分かりません。 $ _session ['month']と年が空でないかどうかをチェックして、値を設定するのを忘れるかもしれませんか?なぜ、セッションの代わりに入力値を直接使用しないのですか? – coban

+0

@gmfmの解決策が動作しているかどうかを確認してください。上記のように、$ sessionの値がどこで更新されているかわかりません。 – coban

0

クエリ結果やデフォルトのセッション値に基づいて$ yearと$ month変数を設定しているようですが、挿入すると$ _SESSION変数が使用され、$ monthと$ yearは使用されません。 try:

$query .= "'".$month."/".$year."'"; 
." `sortcode` = '".$month."/".$year."'"; 
関連する問題