2013-11-07 6 views
0

я хочу спросить .. как я могу вставить идентификатор обновленных данных в другую таблицу? ..Как я могу вставить идентификатор обновленных данных в другую таблицу?

это коды, которые я создал, я использую $ inserted_id = mysql_inserted_id(), но это не работает .. идентификатор еще не вставить в таблицу «updatetrail», надеюсь, что и может помочь мне =):

<?php 
if (!function_exists("GetSQLValueString")) { 
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{ 
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; 

    $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); 

    switch ($theType) { 
    case "text": 
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; 
     break;  
    case "long": 
    case "int": 
     $theValue = ($theValue != "") ? intval($theValue) : "NULL"; 
     break; 
    case "double": 
     $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; 
     break; 
    case "date": 
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; 
     break; 
    case "defined": 
     $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; 
     break; 
    } 
    return $theValue; 
} 
} 

$editFormAction = $_SERVER['PHP_SELF']; 
if (isset($_SERVER['QUERY_STRING'])) { 
    $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); 
} 

$count=0; 

if ((isset($_POST["MM_update"]))) { 
foreach ($_FILES['file']['name'] as $certificate) { 

$allowedExts = array("gif", "jpeg", "jpg", "png", "txt", "pdf"); 
    if ($_FILES['file']['error'][$count]!=4 && $_FILES["file"]["error"][$count] > 0) 
    { 
     echo "Return Code: " . $_FILES["file"]["error"][$count] . "<br>"; 
    } 
    else 
    { 
    if ($_FILES['file']['error'][$count]!=4) { 
    if (file_exists("documents/" . $_FILES["file"]["name"][$count])) 
      { 
      print '<script type="text/javascript">'; 
      print 'alert("The certificate '. $_FILES["file"]["name"][$count].' is already exists, try rename the file and try again. =) ")';  print '</script>'; 

     echo "<script language=\"JavaScript\">{                       
     location.href=\"update(power).php\";                        
     }</script>"; 
      } 
     else 
      { 
      move_uploaded_file($_FILES["file"]["tmp_name"][$count], 
      "documents/" . $_FILES["file"]["name"][$count]); 
      } 

     $file=fopen("documents/". $_FILES["file"]["name"][$count],"r") or exit("Unable to open file!"); 

     $j=0; 
     while(!feof($file)) 
     { 

     $thetoken[$j]=fgets($file, 40); 
     $j++; 

     } 
    } 

    $updateSQL = sprintf("UPDATE department SET d_name=%s, d_staff_name=%s, d_position=%s, d_noic_nopassport=%s, d_type_training=%s, d_date_training=%s, d_date_expired=%s, d_sijil=%s WHERE d_no=%s", 
         GetSQLValueString($_POST['d_name'], "text"), 
         GetSQLValueString($_POST['d_staff_name'], "text"), 
         GetSQLValueString($_POST['d_position'], "text"), 
         GetSQLValueString($_POST['d_noic_nopassport'], "int"), 
         GetSQLValueString($_POST['d_type_training'], "text"), 
         GetSQLValueString($_POST['d_date_training'], "text"), 
         GetSQLValueString($_POST['d_date_expired'], "date"), 
         GetSQLValueString(addslashes($_FILES['file']['name'][$count]), "text"), 
         GetSQLValueString($_POST['departmentID'], "int")); 

mysql_select_db($database_dbconn, $dbconn); 
$Result1 = mysql_query($updateSQL, $dbconn) or die(mysql_error());  

$inserted_id=$_POST['departmentID'];      
$inserted_id = mysql_insert_id(); 

$sql2 = mysql_query("INSERT INTO updatetrail (d_no,d_name, d_position, d_staff_name, d_noic_nopassport, d_type_training, d_date_training, d_date_expired, d_sijil) 
VALUES 
($inserted_id,'$_POST[d_name]','$_POST[d_position]','$_POST[d_staff_name]','$_POST[d_noic_nopassport]','$_POST[d_type_training]','$_POST[d_date_training]','$_POST[d_date_expired]','".addslashes($_FILES['file']['name'][$count])."')") or die("Error: " . mysql_error()); 

insertAuditTrail(date('Y-m-d H:i:s'),"Module:Update User Details" ,"User Details successfully edited",$_SESSION['userID'],$inserted_id); 
    $Result1 = mysql_query($updateSQL, $dbconn) or die(mysql_error()); 

    $count=$count + 1; 


    } 
     echo "<script language=\"JavaScript\">{                       
    location.href=\"update(power).php\";                        
    }</script>"; 
    if (isset($_SERVER['QUERY_STRING'])) { 
    $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?"; 
    $updateGoTo .= $_SERVER['QUERY_STRING']; 
    } 
    header(sprintf("Location: %s", $updateGoTo));  
} 
+0

$ inserted_id = $ _ POST ['departmentID']; $ inserted_id = mysql_insert_id(); Для чего это? Одна и та же переменная, измененная в строках mate – bksi

+0

$ insert_id = mysql_insert_id() - это получить последний идентификатор обновленных данных. но он все еще не получает идентификатор .. поэтому я пытаюсь поместить $ вставленный_ID = $ _ POST ['departmentID'] .. но он не работает .. = _ = " – user2963035

ответ

0

Вы понимаете, что ваш код unspeakably massive security flaws, верно? Также, что вы используете deprecated function?

Но без учета тех, кто на данный момент, ваш запрос будет работать с использованием встроенной функции MySQL LAST_INSERT_ID(), что может пойти прямо в ваш запрос и будет интерпретироваться сервером без необходимости извлекать его:

$sql2 = mysql_query("INSERT INTO updatetrail (d_no,d_name, d_position, ... 
VALUES (LAST_INSERT_ID(),'$_POST[d_name]', ... 

На самом деле ... um, подождите ... в вашем коде ... вы на самом деле не делаете вставку до этого. Нет mysql_insert_id() в php или LAST_INSERT_ID(), если вы не сделали вставку.

Если вы хотите получить идентификатор из строки обновленный (не вставлен) в предыдущем запросе, вы должны указать SELECT.

+0

Я пытаюсь использовать $ sql2 = mysql_query (" INSERT INTO updatetrail (d_no, d_name, d_position, ... VALUES (LAST_INSERT_ID(), '$ _ POST [d_name]', ... но он по-прежнему не сохраняет идентификатор обновленных данных в таблице «updatetrail» = _ = « – user2963035

+0

Глупо мне, я предположил, что вы на самом деле выполняете «INSERT», прежде чем пытаться получить идентификатор строки «вставлен». –

+0

Вы хотите сказать, что я пытаюсь, но не работает .. = ') $ sql2 = mysql_query ("INSERT INTO updatetrail SELECT * FROM WHERE отдела d_no = $ inserted_id; \t \t \t \t \t ") или умереть (" Ошибка:". mysql_error()); – user2963035

Смежные вопросы