محمد المصري12 نشر 13 ديسمبر 2022 أرسل تقرير نشر 13 ديسمبر 2022 سلام عليكم $new_order = $_POST['new_order']; $old_order = $_POST['old_order']; $done = 1; $admin = $_POST['admin']; #1 - Import Threads $get_old_thread_data = $conn->query('SELECT * FROM order_threads WHERE order_id = ' . $old_order); if (mysqli_num_rows($get_old_thread_data) > 0) { $ot/*old thread*/ = []; foreach ($get_old_thread_data as $a) { $ot[] = $a; } #4 - copy new Order_thread data foreach ($ot as $ot => $values) { $new_ot = $conn->prepare('INSERT INTO order_threads (order_id, thread_id, color_select, colorNumber_input, countPiece, total, hadr, egmaly, mPrice, BakaraCost, factory, user) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)'); $new_ot->bind_param("ssssssssssss", $new_order, $values['thread_id'], $values['color_select'], $values['colorNumber_input'], $values['countPiece'], $values['total'], $values['hadr'], $values['egmaly'], $values['mPrice'], $values['BakaraCost'], $values['factory'], $admin); //print_r($a); $run = $new_ot->execute(); } if ($run === false) { echo $new_ot->error; die(); } } /*------------- GET Order Buttons -----------------*/ #1 - Import Button $get_old_button_data = $conn->query('SELECT * FROM order_buttons WHERE order_id = ' . $old_order); if (mysqli_num_rows($get_old_button_data) > 0) { $ob/*old thread*/ = []; foreach ($get_old_button_data as $a) { $ob[] = $a; } #4 - copy new Order_thread data foreach ($ob as $ob => $values) { $new_ob = $conn->prepare('INSERT INTO order_buttons (order_id, button_id, color_select, colorNumber_input, countPiece, total, hadr, egmaly, kgPrice, mcp, ButtonPrice, factory, user) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)'); $new_ob->bind_param("sssssssssssss", $new_order, $values['button_id'], $values['color_select'], $values['colorNumber_input'], $values['countPiece'], $values['total'], $values['hadr'], $values['egmaly'], $values['kgPrice'], $values['mcp'],$values['ButtonPrice'], $values['factory'], $admin); //print_r($a); $run = $new_ob->execute(); } if ($run === false) { echo $new_ob->error; die(); } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~ GET ZIPPERS ~~~~~~~~~~~~~~~~ ############################################### $get_old_z_data = $conn->query('SELECT * FROM order_zippers WHERE order_id = ' . $old_order); if (mysqli_num_rows($get_old_z_data) > 0) { $oz/*old thread*/ = []; foreach ($get_old_z_data as $a) { $oz[] = $a; } #4 - copy new Order_thread data foreach ($oz as $oz => $values) { $new_oz = $conn->prepare('INSERT INTO order_zippers (order_id, zipper_id, color_select, size_select, colorNumber_input, countPiece, total, hadr, egmaly, kgPrice, mcp, MPrice, factory, user) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)'); $new_oz->bind_param("ssssssssssssss", $new_order, $values['zipper_id'],$values['color_select'], $values['size_select'], $values['colorNumber_input'], $values['countPiece'], $values['total'], $values['hadr'], $values['egmaly'], $values['kgPrice'], $values['mcp'],$values['MPrice'], $values['factory'], $admin); //print_r($a); $run = $new_oz->execute(); } if ($run === false) { echo $new_oz->error; die(); } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~ GET Capsons ~~~~~~~~~~~~~~~~ ############################################### $get_old_c_data = $conn->query('SELECT * FROM order_capsons WHERE order_id = ' . $old_order); if (mysqli_num_rows($get_old_c_data) > 0) { $oc = []; foreach ($get_old_c_data as $a) { $oc[] = $a; } #4 - copy new Order_thread data foreach ($oc as $oc => $values) { $new_oc = $conn->prepare('INSERT INTO order_capsons (order_id, capson_id, color_select, colorNumber_input, countPiece, total, hadr, egmaly, kgPrice, mcp, MPrice, factory, user) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)'); $new_oc->bind_param("sssssssssssss", $new_order, $values['capson_id'],$values['color_select'], $values['colorNumber_input'], $values['countPiece'], $values['total'], $values['hadr'], $values['egmaly'], $values['kgPrice'], $values['mcp'],$values['MPrice'], $values['factory'], $admin); //print_r($a); $run = $new_oc->execute(); } if ($run === false) { echo $new_oc->error; die(); } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~ GET Rubbers ~~~~~~~~~~~~~~~~ ############################################### $get_old_r_data = $conn->query('SELECT * FROM order_rubbers WHERE order_id = ' . $old_order); if (mysqli_num_rows($get_old_r_data) > 0) { $or = []; foreach ($get_old_r_data as $a) { $or[] = $a; } #4 - copy new Order_thread data foreach ($or as $or => $values) { $new_or = $conn->prepare('INSERT INTO order_rubbers (order_id, rubber_id, color_select, colorNumber_input, countPiece, total, hadr, egmaly, kgPrice, mcp, MPrice, factory, user) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)'); $new_or->bind_param("sssssssssssss", $new_order, $values['rubber_id'],$values['color_select'], $values['colorNumber_input'], $values['countPiece'], $values['total'], $values['hadr'], $values['egmaly'], $values['kgPrice'], $values['mcp'],$values['MPrice'], $values['factory'], $admin); //print_r($a); $run = $new_or->execute(); } if ($run === false) { echo $new_or->error; die(); } else { echo 'done'; } } لو لاحظتم حضراتكم انا بكرر بيانات من مجموعة جداول و انسخها لاستخدامات اخرى المهم بنية الجداول متشابهة بنسبة 90 % تقريبا الكود متكرر لكل جدول بتفاصيله و التنفيذ line by line هل الطريقة دي في التكويد سليمة ؟ طيب لو مش سليمة ايه الطريقة الصح اني انفذ اللي مكتوب ده بسطور برمجية أقل حاولت انشئ دالة مخصصة واجهتني مشكلة في اتصال قاعدة البيانات من خارج الدالة ناس قالولي ممكن الكود بتعمل OOP بس انا لسه ما بدأتش فيه فخبرتي فيه محدودة اقتراحات حضراتكم و تقييمكم مع خالص الشكر ؟ 1 اقتباس
1 Adnane Kadri نشر 13 ديسمبر 2022 أرسل تقرير نشر 13 ديسمبر 2022 وضع اكواد ذات مهام مختلفة ضمن نفس المجال شيء غير مقترح ابدا، حاول كشيء من التنظيم فقط فصل كل هاته المكونات واجعلها في ملف أو وظيفة منفصلة وهذا من اوجه تطبيق مبدأ يسمى بمبدأ فصل المهام Seperating of concerns. حاول ايضا الحفاظ على احتواء كل منها على مهمة واحدة يمكن التعبير عنها، وذلك كتطبيق لمبدأ المسؤولية الواحدة Single responsibility principle. أيضا لتلافي مشكلة التكرار حاول استخلاص المتشابه بينها واجعل المختلف متغيرا variables، الآن سيمكن تنظيم هاته العملية عن طريق دالة تقوم بأخذ المختلف وتستقبله كمعاملات ثم تحقنه تباعا في اماكن الاختلاف. ما تقوم به غير واضح جيدا، ولكن عموما، أظن انك تأخذ قيم قديمة ثم تعاود ادراجها بقواعد البيانات كطريقة لنسخ البيانات وانشاء صف جديد انطلاقا من آخر موجود بالفعل. حاول وصف دالة تستوفي نفس الشروط السابقة. اقتباس
السؤال
محمد المصري12
سلام عليكم
لو لاحظتم حضراتكم انا بكرر بيانات من مجموعة جداول و انسخها لاستخدامات اخرى
المهم بنية الجداول متشابهة بنسبة 90 % تقريبا
الكود متكرر لكل جدول بتفاصيله و التنفيذ line by line
هل الطريقة دي في التكويد سليمة ؟
طيب لو مش سليمة ايه الطريقة الصح اني انفذ اللي مكتوب ده بسطور برمجية أقل
حاولت انشئ دالة مخصصة واجهتني مشكلة في اتصال قاعدة البيانات من خارج الدالة
ناس قالولي ممكن الكود بتعمل OOP بس انا لسه ما بدأتش فيه فخبرتي فيه محدودة
اقتراحات حضراتكم و تقييمكم مع خالص الشكر ؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.