php
  • mysql
  • combobox
  • updates
  • 2014-12-26 3 views 0 likes 
    0

    PLS 나를콤보 박스에서 가져 오는 데이터를 업데이트하는 방법은 무엇입니까?

    나는 당신의 도움이 필요합니다 .. 내 웹 사이트에서

    , 나는 그가

    $dept_id = $_SESSION['dept_id']; 
        $from= "SELECT d.dept_id, d.name FROM department d LEFT JOIN employee e ON d.dept_id = e.dept_id WHERE emp_id = '$emp_id' "; 
        $result_form = mysql_query($from); 
        //$row1 = mysql_fetch_array($result_form); // get 1st result row 
    
        $dept_from = mysql_fetch_assoc($result_form); 
    $dept_name = $dept_from['name']; 
        //$row=mysql_fetch_array($result_form); 
        //echo $row1['name']; 
    
        $date1=date("Y/m/d"); 
        $dept_id = $_SESSION['dept_id']; 
    $query = "INSERT INTO request (`date`, `description`, `from`, `emp_id`, `to`) 
    
        VALUES 
    
    ('$date1','$_POST[description]','$dept_name','$emp_id','$_POST[to]')"; 
    

    가 작동이 코드를 사용으로 comboBox에서하고자하는 부서 이름을 선택 할 수있는 직원 수 있도록 도와 바르게. 그는 데이터가

    를 업데이트해야 동의 버튼을 누르면

    그런 다음 관리자는으로 comboBox에서 직원 ID의 요청을 선택하고이 해당 코드는 항상 세부 사항은 이미 업데이트 제공

    if(array_key_exists('accept', $_POST)) { 
        $conn = mysql_connect("localhost","root",""); 
        mysql_select_db("employee_transfare", $conn); 
        $emp_id=$_POST['emp_id']; 
        $dept_id = $_SESSION['dept_id']; 
        $query="UPDATE employee SET dept_id='$dept_id' WHERE emp_id= $emp_id "; 
    
        $n=mysql_query($query, $conn); 
    
        if($n==0) 
        echo "<h2>details already updated </h2>"; 
        else 
        echo "<h2>details successfully updated</h2>";  
        mysql_close($conn); 
        } 
    else { 
    

    입니다 ...

    어떻게 할 수 있습니까?

    +1

    코드가 SQL 인젝션에 취약합니다. MySQLi (http://php.net/manual/en/book.mysqli.php) 또는 PDO (http://php.net/manual/en /book.pdo.php)를 사용하여 코드를보다 안전하게 만드십시오. 그 동안 die ('잘못된 쿼리 :'. mysql_error());를 추가하십시오. "세부 정보가 이미 업데이트 된"후 쿼리가 실패한 이유를 확인하십시오. – versalle88

    답변

    0

    제대로 접근하지 못했습니다. mysql_query ($ query, $ conn); 부울 값 (true 또는 false)을 반환합니다. 코드가 올바르게 처리되지 않습니다.

    당신이 당신의 문제를 해결할 수 있는지 방법

    $n=mysql_query($query, $conn); 
    if (mysql_affected_rows()>0){ 
        echo "<h2>details successfully updated</h2>";  
    }else{ 
        echo "<h2>details already updated </h2>"; 
    } 
    
        mysql_close($conn); 
        } 
    

    희망 다음에 사용해보십시오. 그 작업을하는 방법을 더 알고 싶다면 : http://php.net/manual/en/function.mysql-affected-rows.php

    다른 한편으로는 PDO 나 mysqli 중 하나를 사용할 것을 제안합니다. mysql은 더 이상 사용되지 않습니다.

    관련 문제