2016-05-24 6 views
1

Как я могу получить последние вставленные идентификаторы всех импортированных строк. И обновите столбцы, используя сопоставление месяца и года date_participation, затем вставляем в текущие столбцы quter, такие как q1, q2, q3, q4. PHP код:Как получить последние вставленные идентификаторы csv в php

   <?php 
      include("includes/header.php"); 
      session_start(); 

      if(!isset($_SESSION['u_id'])) 
         { 
       //header("Location: membershippage.php"); 
         } 

       if ($_FILES[csv][size] > 0) { 

        $file = $_FILES[csv][tmp_name]; 
        $handle = fopen($file,"r"); 
         do { 
    if ($data[0]) { 
     mysql_query("INSERT INTO point_transfer (mbid,name,activity_name,date_participation,points, admin_id, uploaded_date) VALUES 
      ( 
       '".addslashes($data[0])."', 
       '".addslashes($data[1])."', 
       '".addslashes($data[2])."', 
       '".addslashes($data[3])."', 
       '".addslashes($data[4])."', 
       '".addslashes($_SESSION['u_id'])."', 
       '".addslashes(date("m/d/Y"))."'      
      ) 
     "); 
    } 

} while ($data = fgetcsv($handle,1000,",","'")); 
         //$last_id = mysql_insert_id(); 
         $sql=("SELECT * FROM point_transfer where id = '".mysql_insert_id()."' "); 
         $result=mysql_query($sql); 
         while($row=mysql_fetch_array($result)) 

         { 
         $mbid = $row['mbid']; 
          echo $mbid; 

         $points = $row['points']; 

         $mons = array(1 => "January", 2 => "February", 3 => "March", 4 => "April", 5 => "May", 6 => "June", 7 => "July", 8 => "August", 9 => "September", 10 => "October", 11 => "November", 12 => "December"); 
         $date_participation = $row['date_participation']; 
        list($month, $day, $year) = split('[/.-]', $date_participation); 
        } 
      $sql=("SELECT * FROM total_points WHERE mbid='".$mbid."'"); 
      $query=mysql_query($sql); 
      $row=mysql_fetch_array($query); 
      $month=$mons[$month]; 

      $q1 = array("January","February", "March"); 
      $q2 = array("April","May", "June"); 
      $q3 = array("July","August", "September"); 
      $q4 = array("October","November", "December"); 

     if (in_array($month, $q1)) 
     { 
    $add=$row['q1']; 

      } 
      elseif(in_array($month, $q2)) 
       { 

      $add=$row['q2']; 

      } 
      elseif(in_array($month, $q3)) 
       { 
      $add=$row['q3']; 
       } 
       elseif(in_array($month, $q4)) 
        { 
        $add=$row['q4']; 
          } 

        $addition=$points + $add; 

         if (in_array($month, $q1)) 
          { 


          $query=("update total_points SET q1='".$addition."' where mbid='".$mbid."'"); 
    $result=mysql_query($query , $con); 



          } 
        elseif(in_array($month, $q2)) 
           { 

    $query=("update total_points SET q2='".$addition."' where mbid= '".$mbid."' "); 
    $result=mysql_query($query , $con); 



         } 
       elseif(in_array($month, $q3)) 
         { 

    $query=("update total_points SET q3='".$addition."' where mbid='".$mbid."'"); 
    $result=mysql_query($query , $con); 



        } 
       elseif(in_array($month, $q4)) 
       { 

    $query=("update total_points SET q4='".$addition."' where mbid='".$mbid."' "); 
        $result=mysql_query($query , $con); 
         } 

      echo ("<SCRIPT LANGUAGE='JavaScript'> 

      window.location.href='point_transfer.php'; 
       </SCRIPT>"); 

        die; 

         } 

         ?> 

ответ

1

Ваше решение здесь, чтобы установить массив за пределами цикла в то время, а затем добавить к нему после каждой вставки с помощью mysql_insert_id(). Таким образом у вас будет набор всех новых строк, которые были добавлены.

+0

как я могу реализовать и получить идентификаторы магазина в массиве .... –

+0

использовать цикл Еогеасп - что будет затем пройдите через каждый новый ключ, а затем вы можете запросить/сделать то, что вы хотите с ним. – Ukuser32

+0

, в каком месте я использую для каждой функции. –

1

Сохранить последний идентификатор после запроса:

// Before the loop 
$list_ids = []; 

[...] 
$q = mysql_query("INSERT INTO point_transfer (mbid,name,activity_name,date_participation,points, admin_id, uploaded_date) VALUES 
      ( 
       '".addslashes($data[0])."', 
       '".addslashes($data[1])."', 
       '".addslashes($data[2])."', 
       '".addslashes($data[3])."', 
       '".addslashes($data[4])."', 
       '".addslashes($_SESSION['u_id'])."', 
       '".addslashes(date("m/d/Y"))."'      
      ) 
     "); 


$list_ids[] = $q->insert_id; 

Информация: http://www.w3schools.com/php/php_mysql_insert_lastid.asp

+0

Как я могу получить все последние вставленные идентификаторы? Я пробовал вашу идею, но получаю только последний id –

+0

Объявление массива должно быть до инструкции do –

+0

, но оно получает только последний вставленный id.if u r означает, что..i может реализовать .. –

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

  • Нет связанных вопросов^_^