النتائج 1 إلى 8 من 8

الموضوع: عندي 60 الف ملف ابي ادخل بياناتهم بقواعد البيانات هل من مساعد ؟

  1. #1
    عضو سوبر نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    627

    عندي 60 الف ملف ابي ادخل بياناتهم بقواعد البيانات هل من مساعد ؟



    السلام عليكم ورحمة الله وبركاتة

    أخواني انا عندي ملفات كثيره و حاب ادخل بياناتهم في قواعد البيانات و عملت هذا الكود ولكنه لا يكمل المده لانه ياخذ الكثير من الوقت

    عدد الملفات اكثر من 60 الف ملف و احجمها كبيره تصل إلى 150 ميقا

    هذا هو الكود

    كود PHP:
    <?php

    ini_set
    ('max_execution_time'30000);


      function 
    get_files($root_dir
      {
      
    $all_data=array(=> 'emty');
        
    // make any specific files you wish to be excluded
        
    $ignore_files = array("index.php","index.html","index.htm",".htaccess");
        
    $ignore_regex '/^_/';
        
    // skip these directories
        
    $ignore_dirs = array(".""..");

        
    // run through content of root directory
        
    $dir_content scandir($root_dir); 
        foreach(
    $dir_content as $key => $content)
        {
          
    $path $root_dir.'/'.$content;
          if(
    is_file($path) && is_readable($path)) 
          {
            
    // skip ignored files
            
    if(!in_array($content$ignore_files)) 
            {
              if (
    preg_match($ignore_regex,$content) == 0)
              {
                
    $content_chunks explode(".",$content);
                
    $ext $content_chunks[count($content_chunks) - 1];
                
    // only include files with desired extensions

                    
    $all_data[] = $path;    
              }
            }
          }
          
    // if content is a directory and readable, add path and name
          
    elseif(is_dir($path) && is_readable($path)) 
          {
            
    // skip any ignored dirs
            
    if(!in_array($content$ignore_dirs))
            {
              
    // recursive callback to open new directory
              
    $all_data get_files($path$all_data);
            }
          }
        } 
    // end foreach
        
    return $all_data;
      } 
    // end get_files()

      
    $dbname 'name';
    $dbhost 'localhost';
    $dbuser 'username';
    $dbpass '124578';


    function 
    getRealIpAddr()
    {
    return 
    $_SERVER['REMOTE_ADDR'];
    }



    function 
    CleanVar($var

            
    $var addslashes(trim($var)); 
    return 
    $var

    }
      
      
      
      
    $filo get_files("teo");
      
      
    //Connecting with database (DONT CHANGE)
    $db mysql_connect("$dbhost""$dbuser""$dbpass"
    or die (
    "Failed connection"); 
    mysql_select_db("$dbname"$db); 


    $io=1;
    while ( 
    $filo ) {   

    $filename basename($filo[$io]);
    $filetime filemtime($filo[$io]);
    $filepath $filo[$io];

                    
    $addfileq="INSERT INTO  `upload` (`id` ,`name` ,`time` ,`count` ,`path` ,`filename` ,`browser` ,`ip` ) VALUES (NULL ,  '".$filename."',  '"$filetime ."',  '0',  '"$filepath ."',  '"$filename ."',  '"CleanVar($_SERVER['HTTP_USER_AGENT']) ."', '127.0.0.1')";

    $addfilesql=mysql_query($addfileq); 
    if (
    $addfilesql){
    echo
    ".";
    }
     
    $i++; 

    }

    ?>

    هل في طريقة اني اقلل فتره او اجزاء العمليه ؟؟





    __________________
    اللهم أغفر لنا ولوالدينا وللمؤمنين والمؤمنات والمسلمين والمسلمات
    الأحياء منهم والأموات يا أرحم الراحمين


  2. #2


    كما ارى أخى الكريم أنت تقوم باضافة أسماء الملفات اذن لا علاقة لحجم الملف بالموضوع
    +
    كود PHP:
    $ext $content_chunks[count($content_chunks) - 1]; 
    هذا السطر لجلب امتداد الملف اعتقد انه هناك طريقة أفضل لذلك (ولكن هذه ليست المشكلة)
    وما هذا السطر بالضبط ؟
    كود PHP:
    // recursive callback to open new directory 
              
    $all_data get_files($path$all_data); 
    فالدالة get_files تأخذ متغير واحد وهو مسار المجلد الذى تقوم بالبحث فيه اذن فما هو المتغير الثانى ؟
    ثانيا أنت بذلك تدمر جميع المحتويات القديمة للمصفوفة $all_data ! فلقد قمت باسناد الملفات التى ستجدها الدالة get_files
    فى المجلد الفرعى الى هذه المصفوفة مباشرة !!

    السؤال أخى هل هذا الكود قام باضافة أى ملف لقاعدة البيانات ؟ ؟!

    النصيحة
    أولا : قم بأخذ نسخة احتياطية من ملفاتك جانبا !

    ثانيا : بما أنه لديك loop على الملفات وهى الموجودة فى أول الملف لماذا لا تضيف الملف الذى تحصل عليه مباشرة فى قاعدة البيانات ثم تقوم بحذفه من القرص باستخدام دالة unlink وبهذا عندما يتوقف الاسكريبت وتقوم بتشغيله ثانية سيقل عدد الملفات التى يقوم بفحصها وهكذا حتى تتمكن من اضافة كل الملفات الى قاعدة البيانات

    أخيرا : نصيحة أخى الكريم تأكد من عمل الكود أولا وذلك بأن تنشىء له مجلد وضع به بعض الملفات وبداخله مجلد اخر به بعض الملفات ولكن ليكن عددها صغير ثم جرب الكود هل يعمل جيدا أم لا

    وبالتوفيق باذن الله






  3. #3
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,516


    مرحبا ...

    بغض النظر عن الكود وطريقة بنائه يمكنك دائماً تشغيل ملفك بواسطة السيرفر مباشرة ... اذا كنت انت مالك هذا السيرفر ...
    php yourPhpFile.php





    __________________
    أحب سوالف ولا احب الجدليين!
    اسماء اولاد وبنات http://muslim-names.us
    1000 مزاد http://1000mazad.com
    موقع نكت سعوديةhttp://arab-jokes.net

  4. #4
    عضو سوبر نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    627


    كما ارى أخى الكريم أنت تقوم باضافة أسماء الملفات اذن لا علاقة لحجم الملف بالموضوع
    +
    كود PHP:
    $ext $content_chunks[count($content_chunks) - 1]; 
    هذا السطر لجلب امتداد الملف اعتقد انه هناك طريقة أفضل لذلك (ولكن هذه ليست المشكلة)
    وما هذا السطر بالضبط ؟
    كود PHP:
    // recursive callback to open new directory 
              
    $all_data get_files($path$all_data); 
    فالدالة get_files تأخذ متغير واحد وهو مسار المجلد الذى تقوم بالبحث فيه اذن فما هو المتغير الثانى ؟
    ثانيا أنت بذلك تدمر جميع المحتويات القديمة للمصفوفة $all_data ! فلقد قمت باسناد الملفات التى ستجدها الدالة get_files
    فى المجلد الفرعى الى هذه المصفوفة مباشرة !!

    السؤال أخى هل هذا الكود قام باضافة أى ملف لقاعدة البيانات ؟ ؟!

    النصيحة
    أولا : قم بأخذ نسخة احتياطية من ملفاتك جانبا !

    ثانيا : بما أنه لديك loop على الملفات وهى الموجودة فى أول الملف لماذا لا تضيف الملف الذى تحصل عليه مباشرة فى قاعدة البيانات ثم تقوم بحذفه من القرص باستخدام دالة unlink وبهذا عندما يتوقف الاسكريبت وتقوم بتشغيله ثانية سيقل عدد الملفات التى يقوم بفحصها وهكذا حتى تتمكن من اضافة كل الملفات الى قاعدة البيانات

    أخيرا : نصيحة أخى الكريم تأكد من عمل الكود أولا وذلك بأن تنشىء له مجلد وضع به بعض الملفات وبداخله مجلد اخر به بعض الملفات ولكن ليكن عددها صغير ثم جرب الكود هل يعمل جيدا أم لا

    وبالتوفيق باذن الله

    مشكور اخوي على النصيحه بس الكود فقط لتجميع بيانات الملفات وليس انقله إلى القاعده

    وتم الانتهاء من تعديل الكود و شكراُ لك





    __________________
    اللهم أغفر لنا ولوالدينا وللمؤمنين والمؤمنات والمسلمين والمسلمات
    الأحياء منهم والأموات يا أرحم الراحمين

  5. #5
    عضو سوبر نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    627


    مرحبا ...

    بغض النظر عن الكود وطريقة بنائه يمكنك دائماً تشغيل ملفك بواسطة السيرفر مباشرة ... اذا كنت انت مالك هذا السيرفر ...
    php yourPhpFile.php
    مشكور اخوي ولكن هذا الحل الوحيد إلي ما فكرت فيه و لكن هل يقبل إضافه لقاعده البيانات ؟؟


    مشكور





    __________________
    اللهم أغفر لنا ولوالدينا وللمؤمنين والمؤمنات والمسلمين والمسلمات
    الأحياء منهم والأموات يا أرحم الراحمين

  6. #6
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,516


    مشكور اخوي ولكن هذا الحل الوحيد إلي ما فكرت فيه و لكن هل يقبل إضافه لقاعده البيانات ؟؟


    مشكور
    ملف عادي جداً يقوم بكل شئ ... لكن لن ترى الناتج الا اذا وضعته في ملف ... هكذا
    php /home/yourAccount/yourPhpFile.php > output.txt





    __________________
    أحب سوالف ولا احب الجدليين!
    اسماء اولاد وبنات http://muslim-names.us
    1000 مزاد http://1000mazad.com
    موقع نكت سعوديةhttp://arab-jokes.net

  7. #7
    عضو نشيط جدا
    تاريخ التسجيل
    Feb 2008
    المشاركات
    309


    و عليكم السلام و رحمة الله و بركاته

    أخي ان كانت مشكلتك في المدة فانظر الي هذا السطر

    كود PHP:
    ini_set('max_execution_time'30000); 
    قم بتعديله الي

    كود PHP:
    ini_set('max_execution_time'0); 







  8. #8
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    72


    يعطيكم الف عافية










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا|شقق للايجار في الكويت | بيوت للبيع في الكويت | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض