2016-11-03 5 views
-4

私のプロジェクトの更新機能を作ろうとしています。php mysql update queryが空の結果を返す

私は の削除、クライアントのデータのテーブルを持って、機能の追加作業が、私はアップデート機能 を使用するとき、それは私が他のものを試してみましたが、うまく動作しませんでした をゼロにするために、データベース内の列のデータを空にしています。 それは小さなミスをすることができますが、私は他のプロジェクトに取り組んできて、私は問題を見つけることができないように見えるがwholeday:<

アップデートの詳細PHPファイル

<?php 
 
// include Database connection file 
 
include("db_connection.php"); 
 

 
// check request 
 
if(isset($_POST)) 
 
{ 
 
    // get values 
 
    $id = $_POST['id']; 
 
    $Surname = $_POST['update_Surname']; 
 
    $Name= $_POST['update_Name']; 
 
    $Address = $_POST['update_Address']; 
 
    $Telephone = $_POST['update_Telephone']; 
 
    $PurchaseDate = $_POST['update_PurchaseDate']; 
 
    $Model = $_POST['update_Model']; 
 
    $SerialNumber = $_POST['update_SerialNumber']; 
 
    $Notes = $_POST['update_Notes']; 
 
    
 

 
    // Update User details 
 
    $query = "UPDATE Clients SET Surname = '$Surname', Name = '$Name', Address = '$Address', Telephone = '$Telephone', PurchaseDate = '$PurchaseDate', Model = '$Model', SerialNumber = '$SerialNumber', Notes = '$Notes' WHERE id = '$id'"; 
 
    if (!$result = mysql_query($query)) { 
 
     exit(mysql_error()); 
 
    } 
 
}

更新機能を

function UpdateUserDetails() { 
 
    // get values 
 
    var update_Surname = $("#update_Surname").val(); 
 
    var update_Name = $("#update_Name").val(); 
 
    var update_Address = $("#update_Address").val(); 
 
    var update_Telephone = $("#update_Telephone").val(); 
 
    var update_PurchaseDate = $("#update_PurchaseDate").val(); 
 
    var update_Model = $("#update_Model").val(); 
 
    var update_SerialNumber = $("#update_SerialNumber").val(); 
 
    var update_Notes = $("#update_Notes").val(); 
 

 
    // get hidden field value 
 
    var id = $("#hidden_user_id").val(); 
 

 
    // Update the details by requesting to the server using ajax 
 
    $.post("ajax/updateUserDetails.php", { 
 
      id: id, 
 
      Surname: update_Surname, 
 
      Name: update_Name, 
 
      Address: update_Address, 
 
      Telephone: update_Telephone, 
 
      PurchaseDate: update_PurchaseDate, 
 
      Model: update_Model, 
 
      SerialNumber: update_SerialNumber, 
 
      Notes: update_Notes 
 
     }, 
 
     function (data, status) { 
 
      // hide modal popup 
 
      $("#update_user_modal").modal("hide"); 
 
      // reload Users by using readRecords(); 
 
      readRecords(); 
 
     } 
 
    ); 
 
}

モーダルフォーム

<div class="modal fade" id="update_user_modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> 
 
    <div class="modal-dialog" role="document"> 
 
     <div class="modal-content"> 
 
      <div class="modal-header"> 
 
       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
 
       <h4 class="modal-title" id="myModalLabel">Update</h4> 
 
      </div> 
 
      <div class="modal-body"> 
 

 
       <div class="form-group"> 
 
        <label for="update_Surname">Surname</label> 
 
        <input type="text" id="update_Surname" placeholder="Surname" class="form-control"/> 
 
       </div> 
 

 
       <div class="form-group"> 
 
        <label for="update_Name">Name</label> 
 
        <input type="text" id="update_Name" placeholder="Name" class="form-control"/> 
 
       </div> 
 

 
       <div class="form-group"> 
 
        <label for="update_Address">Address</label> 
 
        <input type="text" id="update_Address" placeholder="Address" class="form-control"/> 
 
       </div> 
 
       
 
       <div class="form-group"> 
 
        <label for="update_Telephone">Telephone</label> 
 
        <input type="text" id="update_Telephone" placeholder="Telephone" class="form-control"/> 
 
       </div> 
 
       
 
       <div class="form-group"> 
 
        <label for="update_PurchaseDate">Purchase Date</label> 
 
        <input type="date" id="update_PurchaseDate" placeholder="Purchase Date" class="form-control"/> 
 
       </div> 
 
       <div class="form-group"> 
 
        <label for="update_Model">Model</label> 
 
        <input type="text" id="update_Model" placeholder="Model" class="form-control"/> 
 
        
 
       </div> 
 
       <div class="form-group"> 
 
        <label for="update_SerialNumber">Serial Number</label> 
 
        <input type="text" id="update_SerialNumber" placeholder="Serial Number" class="form-control"/> 
 
       </div> 
 
       <div class="form-group"> 
 
        <label for="update_Notes">Notes</label> 
 
        <input type="text" id="update_Notes" placeholder="Notes" class="form-control"/> 
 
       </div> 
 

 
      </div> 
 
      <div class="modal-footer"> 
 
       <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 
 
       <button type="button" class="btn btn-primary" onclick="UpdateUserDetails()" >Save Changes</button> 
 
       <input type="hidden" id="hidden_user_id"> 
 
      </div> 
 
     </div> 
 
    </div> 
 
</div>

+0

使用mysqliの*またはPDO。 mysqlは現在廃止されました。 –

+2

1. 'mysql_ *'関数は非推奨です。 2. SQLインジェクション。 PDOの使用を開始し、例外をキャッチします。 –

+1

そしてif(!mysql_query($ query)){ exit(mysql_error()); } ' –

答えて

1
$id = $_POST['id']; 
$Surname = $_POST['update_Surname']; 
$Name= $_POST['update_Name']; 
$Address = $_POST['update_Address']; 
$Telephone = $_POST['update_Telephone']; 
$PurchaseDate = $_POST['update_PurchaseDate']; 
$Model = $_POST['update_Model']; 
$SerialNumber = $_POST['update_SerialNumber']; 
$Notes = $_POST['update_Notes']; 

あなたのポスト変数として update_ を使用しています。しかし、実際のキーは、あなたがjQueryのポスト関数に提供したキーとは異なります。実際のキーは、各課題の左側の次のオブジェクトで定義されます。

 { 
     id: id, 

     Surname: update_Surname, 

     Name: update_Name, 

     Address: update_Address, 

     Telephone: update_Telephone, 

     PurchaseDate: update_PurchaseDate, 

     Model: update_Model, 

     SerialNumber: update_SerialNumber, 

     Notes: update_Notes 

    } 

代わりに以下を使用してください。

$id = $_POST['id']; 
$Surname = $_POST['Surname']; 
$Name= $_POST['Name']; 
$Address = $_POST['Address']; 
$Telephone = $_POST['Telephone']; 
$PurchaseDate = $_POST['PurchaseDate']; 
$Model = $_POST['Model']; 
$SerialNumber = $_POST['SerialNumber']; 
$Notes = $_POST['Notes'];