-
المساهمات
276 -
تاريخ الانضمام
-
تاريخ آخر زيارة
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو محمد المصري12
-
عندي جدول بالشكل التالي و مصفوفة بالشكل التالي $EN=[ 'main'=>'salma', 'view_reports'=>'display some system reports', 'preferred_lang'=>'Select Display Language', 'success'=>'success', ]; ايه الطريقة الصحيحه اني اخلي المصفوفة تقرا من الداتابيز ؟ توضيح اكتر ده ملف ترجمة ، بدل منا افضل كل شوية اغير المصطلحات في المصفوفة هاخلي مدخل البيانات يعملها من لوحة التحكم و يضيف اسم المتغير و الترجمة بتاعته و يدخلوا المصفوفة عادي و السيستيم يقرا الترجمة منهم ازاي اقدر أعمل ده
- 13 اجابة
-
- 1
-
شكرا لحضرتك جدا ما ينفعش اعمل update يدوي بعد كل تكرار لسطر الجدول الرئيسي الأمر غير منطقي يعني مثلا السطر اللي نسخته كان حقل ال ID رقم 5 لما اعمل Insert في الجدول المرتبط بيه هاجيب ال forign key الجديد منين؟ ملحوظة انا شغال php لو فيه طريقة اعملها بال php برضه شغال
-
سلام عليكم عندي جدول بالصورة التالية اسمه order و عندي جدول تاني مرتبط بالجدول ده اسمه order_cloth مثلا بالشكل ده لما بضغط كوبي في الجدول الرئيسي عند اي قيمه بيكررلي القيم دي و بيديني ليها ID جديد يعني مثلا لو كررنا تالت صف اللي واخد ID رقم 3 و عندي اخر قيمه لل ID هيا رقم 6 فبالتالي الحقل الجديد ببياناته هاياخد ID رقم 7 عاوز طريقة اعمل فيها تحديث على الجدول الفرعي بحيث يكرر القيم بتاعه ID رقم 3 في الجدول الأول و يغير ال forign key لل ID الجديد اللي اتعمل في الجدول الرئيسي
- 3 اجابة
-
- 1
-
سلام عليكم عندي قاعدة بيانات ضخمة منها جداول كثيرة مرتبطة بجدول اسمه order و الربط يتم بجقل اسمه order_id الان عاوز لو حذفت من جدول order مثلا ال id رقم 3 عاوز طريقة سهلة اخليه يلف عالداتابيز كلها لو لقا حقل اسمه order_id و قيمته تساوي 3 يحذفه مع الشكر
- 8 اجابة
-
- 1
-
سلام عليكم اقوم بالعمل على موديول مخصص ل dolibarr erp system الكود التالي يقوم بادراج ملف excel الخاص ببيانات الحضور و الانصراف من جهاز البصمه ، و استخدم في ذلك مكتبة Spreadsheet $Spreadsheet = new SpreadsheetReader($destfull); $BaseMem = memory_get_usage(); $Sheets = $Spreadsheet->Sheets(); $nbSheet = count($Sheets); $nblign=0; $nbadded = 0; $nbmodified = 0; $arrayusers = array(); $arrayhorairs = array(); $arraynotfounded = array(); $arralreadyimp = array(); $colnumero = 0; $coldatetime = 1; $presence = new hrmdolibarr_presences($db); $id_presenc = 0; $lastemployee = 0; $lastdate = ''; $lastdebut = ''; for($i=0; $i < $nbSheet; $i++){ $Spreadsheet->ChangeSheet($i); foreach ($Spreadsheet as $key => $row) { $error = 0; if($key > 0 && isset($row[$colnumero]) && isset($row[$coldatetime]) && (int) $row[$colnumero] > 0) {} else continue; $fk_employe = 0; if(isset($arrayusers[$row[$colnumero]])) { $fk_employe = $arrayusers[$row[$colnumero]]; } else { $resql = $db->query('SELECT e.fk_object FROM '.MAIN_DB_PREFIX.'user_extrafields as e WHERE e.hrmdolibarr_nummachine='.(int) $row[$colnumero].' limit 1'); if($resql){ $obj = $db->fetch_object($result); if($obj) { $fk_employe = $obj->fk_object; $arrayusers[$row[$colnumero]] = $fk_employe; } } } $datetime = trim($row[$coldatetime]); $date = explode(' ', $datetime); if($fk_employe <= 0 || !isset($date[0]) || !isset($date[1])) { $arraynotfounded[(int) $row[$colnumero]] = (int) $row[$colnumero]; continue; } $time = explode(':', $date[1]); $tmp_d = explode('/', $date[0]); $day = $tmp_d[0]; // Day 0 $month = $tmp_d[1]; // Month 1 $year = $tmp_d[2]; // Year if(strlen($year) == 2) { $day = $tmp_d[1]; // Day 1 $month = $tmp_d[0]; // Month 0 $year = $tmp_d[2]; // Year $years = DateTime::createFromFormat('y', (int) $year); $year = $years->format('Y'); } $month = strlen($month) == 1 ? '0'.$month : $month; $cleandate = dol_mktime(0, 0, 0, (int) $month, (int) $day, (int) $year); if(!$cleandate) continue; $rowdate = date("Y-m-d", $cleandate); // To avoid duplicate line $tmpdebut = $time[0] * 3600 + $time[1] * 60; if(isset($arralreadyimp[$fk_employe.'-'.$rowdate.'-'.$tmpdebut])) continue; $arralreadyimp[$fk_employe.'-'.$rowdate.'-'.$tmpdebut] = 1; if(!$lastdate || (isset($lastdate) && $lastdate != $rowdate) || $lastemployee != $fk_employe) { $lastdate = $rowdate; // Time in $debut = $time[0] * 3600 + $time[1] * 60; $lastdebut = $debut; $data = [ 'fk_employe' => $fk_employe, 'fk_author' => $user->id, 'date' => $rowdate, 'debut' => $debut ]; $lastemployee = $fk_employe; // $presence = new hrmdolibarr_presences($db); $id_presenc = $presence->create($data); $nbadded++; }else{ if($id_presenc && $lastdate == $rowdate && $lastdebut && $lastemployee == $fk_employe) { $fin = $time[0] * 3600 + $time[1] * 60; $duree = $fin - $lastdebut; $day=date('l', strtotime($rowdate)); if(isset($arrayhorairs[$fk_employe])) { $horairuser = $arrayhorairs[$fk_employe]; } else { // $daynumber = $horaires->namedays[$day]; $horairuser = $horaires->horaireUser($fk_employe); $arrayhorairs[$fk_employe] = $horairuser; } $dt_time = $horaires->calculOverDelaytime($fk_employe, $day, $debut, $fin, $horairuser); $data = [ 'fin' => $fin, 'duree' => $duree, 'overtime' => $dt_time['overtime'], ]; // $presence = new hrmdolibarr_presences($db); $presence->update($id_presenc, $data); } $id_presenc = 0; $lastdate = ''; $lastdebut = ''; } هو بيقبل ملف الإكسل بالصيغة دي انا عاوز اخليه كمان يقبل الملف بالشكل ده يعني يقبل البيانات سواء بالشكل القديم او الجديد ، هل فيه طريقة لده؟
-
سلام عليكم عندي خانة المستخدم بيدخل فيها عنوان رابط ( لازم يكون خاص برفع الملفات زي one drive او google drive او drobbox ) الخ <input type="url" class="form-control image_url"> القيمة تم تمريرها بالمتغير التالي $image_url = $_POST['image_url']; قمت بعمل مصفوفة كالتالي $White_List = array("https://drive.google.com/", "https://1drv.ms/"); //Add Allowed Website list Here و قمت باستخدام دالة in_array if (!in_array($image_url, $ًWhite_List)) { echo "error"; return; } البرنامج لا يقبل الا الرابط الحرفي يعني https://drive.google.com/ فقط اي ملف مرفوع على جوجل درايف بيرفض و بيقولي خطأ انا عاوزه يوافق على الملفات داخل هذا النطاق و لو فيه طريقة اخليه يفحص بيها محتوى الرابط انه صورة فقط يا ريت لانه مواقع الرفع ما بتجيبليش الامتداد و ما بعرفش اعمل فلترة عليه شكرا جزيلا
- 3 اجابة
-
- 1
-
الاستعلام كالتالي SELECT order_threads.*, thread.image , thread.name, patron.id AS patronID, patron.order_id AS patronOrderID, patron_colors.patron_id AS patron_colors_Patron_id , patron_colors.color_name AS patron_colors_color_name, patron_colors.id AS patron_colors_ID, patron_colors.color_count AS patron_colors_colorCount FROM order_threads JOIN thread ON order_threads.thread_id = thread.id JOIN patron_colors ON patron_colors.patron_id = order_threads.color_select OR patron_colors.color_name = order_threads.color_select LEFT JOIN patron ON patron.id = patron_colors.patron_id WHERE patron.order_id = order_threads.order_id AND order_threads.order_id='36'; و الناتج كما في الصورة لاحظ ID رقم 72 مكرر مرتين و 73 ايضا مع العلم اني لما بستعلم من جدول واحد بدون بناء علاقات مع جداول اخرى الناتج بيطلع مضبوط
- 2 اجابة
-
- 2
-
انا اكتشفت المشكلة و هي فعلا غريبة جدا يا استاذ وائل الاستعلام لا ينفذ لانه في الجدول ده مثلا ( اصفر) في التاني (اصفر+مسافة) طبعا انا هعالجها ان شاء الله في الباك اند بس السؤال الان ازاي اخليه يتجاهل المسافه (space) عشان يطلع ناتج الاستعلام صح ، لان الداتا ضخمة جدا و صعب تعديلها كل وحدة على حدة
- 6 اجابة
-
- 1
-
شكرا لك اخي الفاضل اصبح الاستعلام هكذا SELECT order_threads.thread_id, order_threads.order_id, order_threads.color_select, patron_colors.color_name AS color_name, patron_colors.id, patron_colors.color_count FROM order_threads JOIN patron_colors ON patron_colors.color_name = order_threads.color_select WHERE order_threads.order_id = '42'; لكن لا يرجع اي نتائج MySQL returned an empty result set (i.e. zero rows).
-
حين تنفيذ هذا الإستعلام SELECT order_id, thread_id, color_select FROM order_threads WHERE order_id = 42 تظهر النتيجة كالتالي إلى الان مفيش مشكلة الان اريد ربط بعض الجداول ببعضها لجلب بعض البيانات و المفتاح الرئيسي هو حقل و الذي يحتوي على اسماء الألوان و مطلوب عمل علاقة بينه و بين جدول إسمه patron_colors يحتوي على حقل اسمه color_name من المفترض انه يحتوي على نفس الداتا الموجودة في حقل color_select بجدول order_threads و كان الاستعلام كالتالي SELECT order_threads.thread_id, order_threads.order_id, order_threads.color_select, thread.name, patron_colors.color_name AS color_name, patron_colors.id, patron_colors.color_count FROM order_threads JOIN thread ON order_threads.thread_id = thread.id LEFT OUTER JOIN patron_colors ON patron_colors.color_name = order_threads.color_select WHERE order_threads.order_id = '42'; و النتيجة كانت كالتالي مع العلم ان الداتا في الحقلين دول واحدة بالحرف
- 6 اجابة
-
- 1
-
رائع تم اختيار البيانات كالتالي و كما واضح تحتوي على 6 الوان ببياناتهم و تظهر رسالة خطأ بالشكل التالي الاسطر 82 و 82 كالتالي 82 : $item = $items[$j]; 83 : $result = $conn->query("INSERT INTO order_threads(order_id, thread_id, color_select, colorNumber_input, countPiece , total,hadr,egmaly ) VALUES('$order','$threads[$i]','$item[$i]' ,'$colorNumber[$i]','$countPiece[$i]','$total[$i]','$hadr[$i]','$last[$i]')"); لكن تم ادخال البيانات في الداتابيز كالتالي يعني البيانات كلها دخلت تمام ( تم التعرف على عدد الالوان لكن المشكلة الان في اسمها) بخصوص لتمرير المتغيرات من الفرونت اند للباك اند عن طريق jQuery فهو كالتالي let threads = []; let colorSelect =[]; let colorNumber =[]; let countPiece =[]; let total =[]; let hadr =[]; let last = []; $(".threads-value").each(function () { threads.push($(this).val()); }); $(".color_select_thread option:selected").each(function() { let text = $(this).text(); //let tempVal = $(".color_select_thread").text(); if(text.indexOf(text) >= 0 && colorSelect.indexOf(text) < 0) { colorSelect.push(text); } else if(text.indexOf(text) < 0 && colorSelect.indexOf(text) >= 0) { colorSelect.splice(colorSelect.indexOf(text) , 1); } // colorSelect.push($(this).text()); }); $(".colorNumber_input_thread").each(function() { colorNumber.push($(this).val()); }); $(".countPiece_thread").each(function() { countPiece.push($(this).val()); }); $(".total_thread").each(function() { total.push($(this).val()); }); $(".hadr_thread").each(function() { hadr.push($(this).val()); }); $(".last_thread").each(function() { last.push($(this).val()); }); لك خالص شكري و تقديري يا باش مهندس على مساعدتك الكريمة
-
انا شايف خطأ في بعض الوسوم php tags مثلا <img src="<?= $row['img'] ?>" alt="img-blur-shadow" class="img-fluid shadow border-radius-lg" loading="lazy"> ^^^^^^^^^^^^^^^^^^^ من المفترض ان تكون هكذا <img src="<?php echo $row['img'] ?>" alt="img-blur-shadow" class="img-fluid shadow border-radius-lg" loading="lazy"> و الخطأ متكرر في اغلب الكود صححه و جرب كده
-
سلام عليكم عندي 4 مصفوفات وأحاول ادخال بيانات اكثر من قائمة متعددة الاختيارات كل مصفوفة تحتوي على بيانات تأتي من ( قائمة منسدلة متعددة الاختيارات تسمى اللون - العدد - المجموع - السماح - الاجمالي ) عند اختيار قيمتين من القائمة المنسدلة متعددة الاختيارات المطلوب ادخال القيمتين في حقلين منفصلين و ادخال باقي عناصر المصفوفة امام كل حقل حسب المتغير شكل قاعدة البيانات كالتالي مثال هتختار من المصفوفة الاولى قائمة اللون احمر و ابيض ، يبقى هاينزلي في الداتابيز 2 صف واحد فيهم للون الاحمر و التاني للابيض و باقي البيانات تدخل عادي بمتغيراتها هختار من المصفوفة التانية قائمة اللون ازرق ، يبقى هاينزل لي صف واحد فيه اللون الاصفر و باقي البيانات بمتغيراتها لما بطبق الكود ما بيجليش غير لون واحد بس من كل قائمة حتى لو اخترت 4 الوان او 5 هو اول لون فقط ، فما الحل الكود $order = $_POST['order']; $threads = $_POST['threads']; // كود الخيط $items = array($_POST['colorSelect']); // مصفوفة اسماء الالوان // $colorSelect = $_POST['colorSelect']; // اختيار اللون $colorNumber = $_POST['colorNumber']; $hadr = $_POST['hadr']; // السماح $last = $_POST['last']; // الاجمالي $countPiece = $_POST['countPiece']; // عدد القطع الملبسية $total = $_POST['total']; // $result = $conn->query("DELETE FROM order_threads WHERE order_id='$order'"); for ($i =0; $i < count($threads); $i++){ try { foreach ($items AS $item){ $result = $conn->query("INSERT INTO order_threads(order_id, thread_id, color_select, colorNumber_input, countPiece , total,hadr,egmaly ) VALUES('$order','$threads[$i]','$item[$i]' ,'$colorNumber[$i]','$countPiece[$i]','$total[$i]','$hadr[$i]','$last[$i]')"); }} catch (Exception $e) { var_dump($e->getTrace()); // or to get the full error info, just var_dump($e); } } $result2 = $conn->query("UPDATE orders SET thread=1 WHERE id='$order'"); if ($result2){ echo 'done'; }
-
السلام عليكم عندي مجموعة من الاختيارات منهم قوائم منسدلة الاختيارات دي نفسها بتكرر حسب اختيار المستخدم و بقوم بادخال بيانات قائمة منسدلة متعددة الاختيارات إلى قاعدة البيانات فيديو صغير توضيحي يشرح المشكلة 2022-06-06_13-34-29.mp4 الكود <div class="col-12 mb-2 row d-flex align-items-center threads-fields"> <div class="col-9" style="margin-bottom:20px"> <label class="h5 text-primary m7md1" style="margin-bottom:20px">اختيار الخيط</label> <div class="input-group"> <!-- قائمة اختيار الخيط --> <select class="form-control threads-value show-image p-0" required> <option selected readonly value="0" disabled>تحديد خيط حياكة</option> <?php $result = $conn->query("SELECT * FROM thread"); while ($row = $result->fetch_assoc()) { if (empty($row['name'])){ echo '<option type="threads" img="' . $row['image'] . '" value="' . $row['id'] . '">كود الخيط T' . $row['id'] . '/ لم يتم تسجيل اسم للخيط</option>'; } else { echo '<option class="text-danger" type="threads" img="' . $row['image'] . '" value="' . $row['id'] . '">كود الخيط T' . $row['id'] . '/ اسم الخيط - ' . $row['name'] . '</option>'; } } ?> </select> </div> </div> <!-- ##### عرض الصورة --> <div class="col-3 d-flex justify-content-center show-image" style="margin-bottom:20px"></div> <div class="col-2" style="margin-bottom:30px"> <label class="required">اختيار لون المرياج</label> <div class="input-group"> <!-- قائمة اختيار لون المرياج --> <select class="form-control m color_select_thread" multiple="multiple" required> <option value="" disabled selected >اختيار اللون</option> <!-- بداية استعلام الوان المرياجات --> <?php $meriag = "SELECT `patron_colors`.`id` AS pcID, `patron_colors`.`patron_id` AS pcPID, `patron_colors`.`color_name` AS pcCN, `patron_colors`.`color_count`AS pcCC FROM `patron_colors` INNER JOIN `patron` ON `patron`.`id` = `patron_colors`.`patron_id` INNER JOIN `orders` ON `orders`.`id` = `patron`.`order_id` WHERE `orders`.`id` =$order_id"; $result = $conn->query($meriag); while ($row = $result->fetch_assoc()) { echo '<option class="text-danger color_count_thread" type="buttons" value="' . $row['pcCC'] . ' "> ' . $row['pcCN'] . '</option>'; } ?> </select> </div> </div> <div class="col-2" style="margin-bottom:30px"> <label class="required">العدد</label> <div class="input-group"> <input type="text" class="form-control colorNumber_input_thread" required readonly> </div> </div> <div class="col-2" style="margin-bottom:30px"> <label class="required">عدد الامتار للقطعة</label> <div class="input-group"> <input type="number" step=".01" class="form-control countPiece_thread" required> </div> </div> <div class="col-2" style="margin-bottom:30px"> <label class="required">المجموع</label> <div class="input-group"> <input type="text" class="form-control border border-warning total_thread" required disabled> </div> </div> <div class="col-2" style="margin-bottom:30px"> <label class="required">نسبة السماح</label> <div class="input-group"> <input type="text" class="form-control border border-warning hadr_thread" required> </div> </div> <div class="col-2" style="margin-bottom:30px"> <label class="required">الإجمالي</label> <div class="input-group"> <input type="text" class="form-control border border-warning last_thread" required disabled> </div> </div> </div> كود التمرير JQuery <script> // Submit Threads (function() { 'use strict'; window.addEventListener('load', function() { var forms = document.getElementsByClassName('needs-validation-threads'); var validation = Array.prototype.filter.call(forms, function(form) { form.addEventListener('submit', function(event) { if (form.checkValidity() === false) { event.preventDefault(); event.stopPropagation(); } else { let threads = []; // تعريف نوع الخيط let colorSelect =[]; // تعريف لون المرياج $(".threads-value").each(function () { threads.push($(this).val()); }); // تمرير لون المرياج $(".color_select_thread option:selected").each(function() { let text = $(this).text(); if(text.indexOf(text) >= 0 && colorSelect.indexOf(text) < 0) { colorSelect.push(text); } else if(text.indexOf(text) < 0 && colorSelect.indexOf(text) >= 0) { colorSelect.splice(colorSelect.indexOf(text) , 1); } // colorSelect.push($(this).text()); }); console.log(threads); $.ajax({ url: "requests/ordersAddAccessories.php", dataType: 'text', data: { "action": "add_threads", "order": <?php echo $order_id; ?>, "threads": threads, "colorSelect": colorSelect, }, type: 'post', success: function(data) { if (data == "done") { Swal.fire({ icon: 'success', title: 'تمت الاضافة بفضل الله - قم بتحديث الصفحة بعد الانتهاء', confirmButtonText: 'حسنا', showCloseButton: true }).then((result) => { if (result.isConfirmed) { location.reload(); } }) console.log(data); } else { Swal.fire({ icon: 'error', title: 'حدث خطأ حاول مجددا', confirmButtonText: 'حسنا', showCloseButton: true }); console.log(data); } } }); } form.classList.add('was-validated'); }, false); }); }, false); })(); </script> كود الباك ايند $order = $_POST['order']; $colorSelect = $_POST['colorSelect']; $threads = $_POST['threads']; $hadr = $_POST['hadr']; $last = $_POST['last']; $colorNumber = $_POST['colorNumber']; $countPiece = $_POST['countPiece']; $total = $_POST['total']; // $result = $conn->query("DELETE FROM order_threads WHERE order_id='$order'"); for ($i =0; $i < count($threads); $i++){ // لتكرار القائمة حسب اختيار المستخدم foreach ($colorSelect AS $meriag){ //دالة التكرار لادخال بيانات القائمة المتعددة الاختيار $result = $conn->query("INSERT INTO order_threads( order_id, thread_id, color_select, colorNumber_input, countPiece, total, hadr, egmaly ) VALUES( '$order', '$threads[$i]', '$meriag', '$colorNumber[$i]', '$countPiece[$i]', '$total[$i]', '$hadr[$i]', '$last[$i]' )"); } } $result2 = $conn->query("UPDATE orders SET thread=1 WHERE id='$order'"); if ($result2){ echo 'done'; } اين الخطأ الذي وقعت فيه ؟ و لكم خالص الشكر
-
جواب حضرتك فيه الحل استاذي ، فعلا لم انتبه للمسار ، المسار و الملف ليسوا ضمن نفس المستوى و قمت بتعديل الكود كالتالي $image = $get['image']; $location = '../assets/images/common_cloth_composition/'.$image; //$location = __DIR__ . '/assets/images/common_cloth_composition/'.$image; if (file_exists($location)) { echo '<img style="max-height: 50px !important; margin: 0 auto;" src="assets/images/common_cloth_composition/'. $image .' " alt="#">'; } else { echo '<img class="img-thumbnail" style="width: 60px" src="assets/images/noImage.png" alt="">'; } ?> شكرا جزيلا لك
-
البروجكت عمل معي بشكل طبيعي شاهد الفيديو المرفق 2022-05-29_16-41-04.mp4
-
سلام عليكم الصورة موجودة بالفعل داخل المكان المقرر في لكن عند تنفيذ الكود تلقائيا يذهب بي للاستثناء else مع ان الشرط متحقق و الصورة موجودة في مكانها و لما شلت الif condition اشتغلت عادي جدا <?php $image = $get['image']; $location = '/assets/images/common_cloth_composition/'.$image; if (file_exists($location)) { echo '<img style="max-height: 150px !important; margin: 0 auto;" src="assets/images/common_cloth_composition/'. $image .' " alt="#">'; } else { echo '<img class="img-thumbnail" style="width: 60px" src="assets/images/noImage.png" alt="">'; } ?> اين الخطأ ؟
-
لا مشكلة نهائيا في الكود ممكن تشارك رابط الموقع الذي تتدرب عليه