• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

بو غالية

اعضاء جدد
  • عدد المشاركات

    9
  • تاريخ الانضمام

  • تاريخ اخر زياره

السمعه بالموقع

3 عادي

عن بو غالية

  • الرتبة
    عضو جديد
  • تاريخ الميلاد 08/05/1985

معلومات الملف الشخصي

  • الجنس ذكر
  1. استدعاء دالة من ملف اخر

    أخي الحبيب .. لغة PHP قد وُضعت بها الدوال لتنفيذ مهام محددة، فكل دالة لها وظيفة تؤدي غرض معين، على سبيل المثال لو أردت طباعة نص على الشاشة فإنك تستخدم echo او print، ولعرض بيانات المصفوفة تستخدم print_r وهكذا .. دوال include و require و include_once و require_once تختص بجلب بيانات صفحة بداخل صفحة أخرى .. فعندما أجد نفسي بحاجة لإدراج صفحة داخل صفحة أخرى فإني استخدم احدى هذه الدوال حسب الحاجة، ولا يهم ان كانت هناك دوال اخرى لم يكتشفها الخبراء بعد، لأنها في النهاية تؤدي نفس الغرض، فما يهم لو استدعيت زيد او عبيد، فالمهمة واحدة.
  2. اهلا بك اخي الحبيب .. تستطيع اضافة echo داخل function، ولكن هل تظهر النتيجة صحيحة؟ خذ هذا المثال: <?php if(test(3) == true) { echo 'ok'; } function test($value) { if($value<5) { echo true; } else { echo false; } } ?> ستطبع النتيجة على الشاشة: 1 وخذ هذا الكود: <?php if(test(3) == true) { echo 'ok'; } function test($value) { if($value<5) { return true; } else { return false; } } ?> ستطبع النتيجة على الشاشة: ok هنا الفرق بين echo و return
  3. مرحبا بك اخي الفاضل .. اعتقد انه بما انك قد قمت بتعريف المتغيرات في بداية الكلاس، فيجب عليك استخدام المتغيرات داخل الكلاس بالطريقة التالية: $this->imageName = $uploaded_file_name ; $this->NameField = $_POST[$NameField]; return $this->imageName; والله أعلم
  4. وظيفة echo تختلف كلياً عن return، حيث أن echo تستخدم للطباعة على الشاشة، في حين أن الدالة return تستخدم عادة في functions لاسترجاع قيمة .. وخذ هذا المثال لتوضيح القصد: <?php function test($value) { if($value<5) { return true; } else { return false; } } ?> لاحظ ان الـ function تأخذ متغير value، فإذا كان المتغير اصغر من 5 فإنها ترجع القيمة true، وإذا كان غير ذلك فإنها ترجع القيمة false. ويستخدم هذا في التأكد من العملية اذا كانت صحيحة أم خاطئة عبر هذه الإضافة: if(test(3) == true) { /* some code here */ } ويمكن استخدام الدالة return في نهاية الملف البرمجي، بمعنى انه لايقوم بقراءة الاسطر التي تأتي بعد الدالة return. ومثال ذلك هذا الكود: return true; echo 'hello'; لاحظ ان دالة الطباعة echo موجودة، ولكن لن يعرض شيء على الشاشة لأن الدالة return تسبقها. اتمنى ان اكون قد افدتك في ما سألت عنه، وإن كان من خطأ فالاخوة هنا يصححون والله أعلم.
  5. اهلا بك اخي الحبيب، وحياك الله في أي وقت .. اذا واجهت اي مشكلة فأنا موجود ان شاء الله، وبالامكان مراسلتي على الايميل [email protected] اخوك
  6. اهلا بك .. قم بتشغيل الملفات المرفقة دون تغيير شيء، واخبرني هل تجد نفس الخطأ ام ان بيانات الملف تظهر على المتصفح؟ read.php data.txt
  7. مرحبا .. الاسماء التي تندرج تحت خانة الاسم هل يوجد بها فراغات؟ لا اجد سبباً في وجود الاسماء داخل الملف، فرقم الموظف يكفي لقراءة بياناته .. $file_data = fgets($file); هذا الكود يقوم بقراءة الملف سطر بسطر، اي انه يتعامل مع السطر كجزء متكامل، لأن هناك دالة اخرى fgetc تتعامل مع الاحرف .. $line_string = preg_replace('/\s[\s]+/', '|', $file_data); هذا الكود يقوم بالبحث عن الفراغات في السطر ويستبدلها بهذه الاشارة | لكي يسهل التعامل مع البيانات، بعد تنفيذ هذه العملية ستكون صيغة السطر كالآتي: 00001|1|00000111|ac|33|0|2012/04/02|17:36:10 ثم استخدمنا دالة explode التي تقوم بتوزيع البيانات وتضعها في مصفوفة $file_AGL_001 = explode('|', $line_string); لاحظ ان الدالة تقوم بقراءة السطر بعد حذف الفراغات، ثم تقوم بفصل الاجزاء، وهذا المثال للتوضيح: لو افترضنا ان لدينا هذا السطر: $string = "mohammed|Khalid"; نقوم بعملية explode للنص: $exp_string = explode("|", $string); سيقوم البرنامج بالبحث عن هذا الفاصل | الذي قمنا بتعريفه في عملية explode، ثم سيجعل مادون ذلك في مصفوفة، والنتيجة ستكون لديك كالتالي: $exp_string[0] = mohammed $exp_string[1] = Khalid فهذه هي الفكرة التي قمت بالاعتماد عليها لقراءة البيانات من الملف .. لذلك اعتقد ان المشكلة لديك هي وجود فراغات في خانة الاسماء، مما يلخبط ترتيب المصفوفة، فإن كان بالامكان ازالة خانة الاسماء والاكتفاء برقم الموظف فذلك افضل .. اخوك
  8. مرحبا بك .. اعتقد ان المشكلة في المصفوفة، لأن صيغة السطر لديك غير مرتبة ولا ينطبق عليها التطبيق الذي قمت بإدراجه لك. على العموم، هذا الكود بعد التعديل عليه، يقوم بقراءة البيانات المحددة للتاريخ المحدد في المتغير $date ثم يقوم بحفظ البيانات المحددة في قاعدة البيانات .. <?php // CONNECT TO DATABASE // $connect = mysql_connect("localhost","user","password"); mysql_select_db("Database", $connect); // SELECTED DATE // $date = '2012/04/02'; // TXT FILE PATH // $file_path = 'data.txt'; // OPEN TXT FILE // $file = fopen($file_path,'r') or exit(); // READ FILE TO THE END // while(!feof($file)) { // READ THE FILE LINE BY LINE AND SPLIT IT // $file_data = fgets($file); $line_string = preg_replace('/\s[\s]+/', '|', $file_data); $file_AGL_001 = explode('|', $line_string); if($file_AGL_001[6] == $date) { $No = $file_AGL_001[0]; $Mchn = $file_AGL_001[1]; $EnNo = $file_AGL_001[2]; $Name = $file_AGL_001[3]; $Mode = $file_AGL_001[4]; $IOMd = $file_AGL_001[5]; $DateTime = $file_AGL_001[6] .' '. $file_AGL_001[7]; // DISPLAY DATA // echo '<pre>No:'. $No .' Mchn:'. $Mchn .' EnNo:'. $EnNo .' Name:'. $Name .' Mode:'. $Mode .' IOMd:'. $IOMd .' DateTime:'. $DateTime .'</pre>'; // INSERT STATEMENT // mysql_query("INSERT INTO table_name (date, id, time) VALUES ('$fdate', '$fid', '$ftime')"); } } ?> يجب ان يكون العرض لديك بهذا الشكل: No:00001 Mchn:1 EnNo:00000111 Name:ac Mode:33 IOMd:0 DateTime:2012/04/02 17:36:10 اخبرني عن النتيجة .. اخوك
  9. مرحبا بك اخي .. العملية بسيطة ان شالله وليس بها أي تعقيد .. لنفرض ان ملف البيانات يحتوي على اسطر، وكل سطر يعني بيانات قراءة الجهاز لتسجيل دخول الموظفين .. وليكن السطر على هذا النحو: 04/04/2012,100,07:30:00 حيث ان السطر يحتوي على التاريخ، رقم الموظف، وقت تسجيل التحضير .. نبدأ بالعملية: <?php // CONNECT TO DATABASE // $connect = mysql_connect("localhost","user","password"); mysql_select_db("Database", $connect); // SELECTED DATE // $date = '04/04/2012'; // TXT FILE PATH // $file_path = 'data.txt'; // OPEN TXT FILE // $file = fopen($file_path,'r') or exit(); // READ FILE TO THE END // while(!feof($file)) { // READ THE FILE LINE BY LINE AND SPLIT IT // $file_data = explode(',', fgets($file)); $fdate = $file_data[0]; $fid = $file_data[1]; $ftime = $file_data[2]; // DISPLAY DATA // echo '<pre>'. $fdate .' '. $fid .' '. $ftime .'</pre>'; // INSERT STATEMENT // mysql_query("INSERT INTO table_name (date, id, time) VALUES ('$fdate', '$fid', '$ftime')"); } ?> الكود يقوم بقراءة ملف البيانات سطر بسطر، يقوم بتجزيء السطر عن طريق فصل البيانات بالفاصلة "," ثم يحفظها في مصفوفة، بعد ذلك يقوم بحفظ البيانات في قاعدة البيانات لكل سطر حتى ينتهي من جميع الأسطر .. ولكن يجب التأكد من ان الصيغة موحدة لجميع الأسطر لكي لايحدث اي تعارض في قراءة البيانات .. وإن كنت تواجه صعوبة في قراءة صيغة السطر للملف لديك، قم بإدراجه حتى نقوم بمساعدتك ان شاء الله، ولكن حاول ان تعتمد على نفسك، فذلك أفضل لك :wink: اخوك ,,