2012-06-05 18 views
0

我正在使用一個門戶,其中有內容類型。創建此門戶的前端開發人員添加了一個CCK字段用於文件附件&已經有核心給出的文件附件字段。 現在我們不會去討論他爲什麼那樣做,因爲我也不知道。Drupal數據庫:必須通過檢查遠程服務器的狀況將一些數據從一個表移動到另一個表。

現在我必須刪除該CCK字段&如果我直接刪除,我將丟失此字段上傳的所有數據,因爲它會刪除它的表。

所以,現在我試圖將CCK字段表中的值替換爲默認上傳表&更新文件表中的文件路徑,以便它可以在附加文件中查看。

因爲我不是在PHP或MySQL,我尋求你們一些幫助非常好的..

下面是基本的代碼,我已經寫了......請建議修正&請告訴我會我能夠連接遠程服務器數據庫中做如此 -

<?php 

mysql_connect("http://edlabs.in/connect:22","connect",""); 
mysql_select_db("connect"); 

for($i=0; $i<=1; $i++){ 

    $fid_cck = array(mysql_query("SELECT field_upload_doc_fid FROM content_field_upload_doc WHERE field_upload_doc_list > 0")); 
    $fid_core = array(mysql_query("SELECT fid FROM upload")); 

    foreach($fid_cck as $fid_cck_value){ 

     foreach($fid_core as $fid_core_value) 
     { 
      if($fid_cck_value != $fid_core_value){ 

       $file_name = mysql_query("SELECT filename FROM files WHERE fid = $fid_cck"); 
       $nid_cck = mysql_query("SELECT nid FROM field_upload_doc_fid WHERE fid = $fid_cck"); 
       $vid_cck = mysql_query("SELECT vid FROM field_upload_doc_fid WHERE fid = $fid_cck"); 

       mysql_query("INSERT INTO upload VALUES('$fid_cck', '$nid_cck', '$vid_cck', '$file_name', 1, 0)"); 

       $filepath = array(mysql_query("SELECT filepath FROM files WHERE fid = $fid_cck")); 

       $new_filepath = str_replace("/background_docs", "", $filepath); 

       mysql_query("UPDATE files SET filepath=$new_filepath WHERE fid = $fid_cck"); 

      } 
     } 
    } 


} 
?> 
+0

* 「因爲我不是很擅長的PHP或MySQL,我尋求你們一些幫助。」 * - 找一個導師來完成你的專業工作。與你的團隊領導交談,你需要更多的培訓來解決你的工作。你在工作環境中明確表達這一點非常重要,而不是在這裏。 – hakre

+0

我會關心它的.. 謝謝:) – RajeevK

+0

它現在是固定的...我已經做到了:) – RajeevK

回答

1

我已經通過以下步驟 -

  1. 創建一個數據庫具有相同的名稱作爲我的門戶解決了這個問題在我的本地phpmyadmin。
  2. 導出三個名爲content_field_upload_doc的表,從我的門戶的數據庫上傳文件&。
  3. 用一些MySQL查詢編寫了一個自定義PHP代碼,用於查詢並找到content_field_upload_doc中但不在上載表&中的那些文件的DIFF從表格文件中挑選出的名稱(我在下面給出代碼)。
  4. 運行我的wamp上的代碼並回應INSERT查詢。
  5. 複製了所有查詢&在門戶網站數據庫中使用SQL執行了我的phpmyadmin。
  6. 複製粘貼到默認公用文件夾的公用文件夾&內的所有文件。
  7. 從內容類型中刪除了CCK字段,它已完成..!

    die('Could not connect: ' . mysql_error()); } 其他{
    mysql_select_db("connect"); 
    
    $rs_fudl = mysql_query("SELECT vid, nid, field_upload_doc_fid FROM content_field_upload_doc WHERE field_upload_doc_list > '0'"); 
    while($rs_fudl_row = mysql_fetch_array($rs_fudl)) 
    { 
    
        $fid_fudl = $rs_fudl_row['field_upload_doc_fid']; 
    
        $rs_file = mysql_query("SELECT filename,filepath FROM files WHERE fid = '$fid_fudl'"); 
    
        //echo mysql_num_rows($rs_file)."<br />"; 
    
        while($rs_file_row = mysql_fetch_array($rs_file)){ 
    
          $rs_upload = mysql_query("SELECT * FROM upload where fid='".$fid_fudl."'"); 
    
          if (mysql_num_rows($rs_upload) == 0) { 
    
          /* $new_filepath = str_replace("/background_docs", "", $rs_file_row['filepath']); 
    
           $filepath = $new_filepath; 
          */ 
           $filename = $rs_file_row['filename']; 
           $vid_fudl = $rs_fudl_row['vid']; 
           echo "<br />"; 
    
           $nid_fudl = $rs_fudl_row['nid']; 
           echo "<br />"; 
    
           echo "INSERT INTO upload VALUES ('$fid_fudl','$nid_fudl', '$vid_fudl', '$filename','1', '0');" ; 
           echo "<br />"; 
          // echo "UPDATE files SET filepath= '$filepath' WHERE fid = '$fid_fudl';";  
    
          } 
        } 
    } 
    mysql_close($con); 
    
    } ?>
相關問題