-
المساهمات
9872 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
154
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو محمد عاطف25
-
هل تقصد حفظ الوقت في قاعدة البيانات ؟ ام ماذا تقصد بطباعة الوقت الحالي ؟ سبب مشكلة إضافة أصفار في قاعدة البيانات فهو بسبب إما إضافة التاريخ بصيغة خاطئة في الإستعلام أو لم يتم وضعه في الإستعلام . وإذا أردت إستخدام التاريخ والوقت الحالي في قاعدة البيانات يمكنك إستخدام الدالة NOW() في قاعدة البيانات في الإستعلام هكذا : $sql = "INSERT INTO my_table (timestart,timefinsh) VALUES (NOW(),NOW())"; هنا يمكنك إستبدال ال my_table بإسم الجدول لديك . وهكذا سيتم إضافة الوقت والتاريخ الحالي في العمودين timestart و timefinsh. أما بخصوص طرح تاريخين مع الوقت في php يمكنك أولا تحويل الوقت إلى UNIX وهو عدد الثواني منذ 1 يناير 1970 ( January 1 1970 00:00:00 UTC) وبعد تحويلهم يمكنك طرح التاريخين وإستخراج عدد الساعات منه هكذا : $timestamp1 = strtotime($time1); $timestamp2 = strtotime($time2); $diff_seconds = abs($timestamp2 - $timestamp1); // تحويل الثواني إلى ساعات $hours = $diff_seconds / 3600; // عدد الساعات هنا في السطر الأول والثاني قمنا بتحويل التاريخ إلى timestamp لذلك في ذلك السطرين يجب عليك تمرير التاريخ الذي أحضرته من قاعدة البيانات إلى الدالة strtotime . وبعد ذلك نقوم بطرح التاريخين والناتج سيكون عدد الثواني بينهما . بعد ذلك نقوم بقسمة الناتج على 3600 وهو عدد الساعات بالثواني : 60 ثانية * 60 دقيقة = 3600 . وهكذا سيكون لديك عدد الساعات في المتغير hours$
- 2 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته. الفرق بين scoring و refit يتعلق بكيفية تقييم النموذج واختياره : حيث التقييم (Scoring) هو المعيار الذي يستخدمه GridSearchCV لتقييم جودة النماذج أثناء البحث عبر شبكة المعاملات (hyperparameter tuning) . حيث يمكنك تحديد معايير مختلفة مثل دقة النموذج accuracy أو f1-score أو أي مقياس آخر حسب الحاجة. و في كل مرة يقوم فيها GridSearchCV بتجربة مجموعة من المعاملات يقوم بتقييم أداء النموذج باستخدام المقياس الذي تم تحديده في scoring. أما إعادة التكييف (Refit) تعني أنه بعد إتمام البحث عن أفضل مجموعة من المعاملات (hyperparameters) سيقوم GridSearchCV بإعادة تدريب النموذج باستخدام أفضل المعاملات التي تم العثور عليها على كامل مجموعة البيانات. فإذا قمت بتعيين refit=True فإن GridSearchCV سيعيد تدريب النموذج باستخدام أفضل المعاملات بعد إتمام عملية البحث. أما إذا كان refit مضبوطا على False فإن GridSearchCV لن يعيد تدريب النموذج بعد البحث، بل سيحتفظ فقط بأفضل المعاملات التي تم العثور عليها.
- 6 اجابة
-
- 1
-
-
لطباعة الجداول أو JTextArea يمكنك استخدام واجهة برمجة تطبيقات الطباعة java.awt.print و التي توفرها Java. و لطباعة محتوى JTextArea يمكنك استخدام Printable لإنشاء صفحة قابلة للطباعة. import javax.swing.*; import java.awt.*; import java.awt.print.*; public class PrintTextAreaExample { public static void main(String[] args) { JTextArea textArea = new JTextArea(20, 40); textArea.setText("Text To print"); JButton printButton = new JButton("Print"); printButton.addActionListener(e -> { try { textArea.print(); } catch (PrinterException ex) { ex.printStackTrace(); } }); JFrame frame = new JFrame("طباعة JTextArea"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(new JScrollPane(textArea), BorderLayout.CENTER); frame.add(printButton, BorderLayout.SOUTH); frame.pack(); frame.setVisible(true); } } و لطباعة محتوى JTable يمكنك استخدام JTable.PrintMode لطباعة الجدول : import javax.swing.*; import java.awt.*; import java.awt.print.*; public class PrintJTableExample { public static void main(String[] args) { String[] columnNames = {"col 1", "col 2", "col 3"}; Object[][] data = { {"1", "value 1", "value 1"}, {"2", "value 2", "value 2"}, {"3", "value 3", "value 3"} }; JTable table = new JTable(data, columnNames); JButton printButton = new JButton("Print Table"); printButton.addActionListener(e -> { try { table.print(JTable.PrintMode.FIT_WIDTH); } catch (PrinterException ex) { ex.printStackTrace(); } }); JFrame frame = new JFrame(" Print Table"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(new JScrollPane(table), BorderLayout.CENTER); frame.add(printButton, BorderLayout.SOUTH); frame.pack(); frame.setVisible(true); } } والآن عند استدعائك لدالة print() على JTextArea أو JTable ستظهر لك نافذة الطباعة الافتراضية .
-
في أكاديمية حسوب يتم دائما تحديث الدورة بما يتناسب مع متطلبات سوق العمل وأيضا لما يوجد من تحديثات سواء في إصدار اللغة أو في أطر العمل والمكتبات . وبمجرد شراءك للدورة يصبح لك وصول مدى الحياة إليها بالإضافة إلى التحديثات المستمرة. أما في دورة php فيتم شرح إصدار 8 من php مع إطار عمل لارافل إصدار 10 وجاري حاليا تحديث الدورة لإصدار 11 من لارافيل . وإليك محتوى الدورة من خلال الرابط التالي : https://academy.hsoub.com/learn/php-web-application-development/ وإليك الرابط الخاص الذي يتم تحديثه بمجرد إصدار تحديثات أو إضافة مسارات في أى دورة من الدورات : https://academy.hsoub.com/release-notes/ أما بخصوص بايثون فيتم إستخدام إصدار 3.11 ويتم دائما تحديث محتويات الدورة أيضا. ويمكنك رؤية محتوى الدورة من خلال الرابط التالي : https://academy.hsoub.com/learn/python-application-development/
-
وعليكم السلام ورحمة الله وبركاته. إذا كانت البيانات التي تعمل عليها قليلة فلابئس بهذا الكود . أما إذا كنت تتعامل مع بيانات كبيرة جدا فنعم يمكنك تحسينه والأفضل إستخدام الدوال التي توفرها numpy و pandas حيث أنها تعمل بكفائة أكثر في البيانات الكبيرة. يمكنك استخدام np.where وأيضا يمكنك استخدام isin من pandas للتحقق من وجود العناصر في x_dev.index بشكل أكثر كفاءة. import numpy as np split_index = np.where(x_train.index.isin(x_dev.index), 0, -1) وإليك شرح حول np.where : وإليك التوثيق الرسمي لدالة isin : https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.isin.html وكما وضحت لك هذا الكود أفضل إذا كانت البيانات كبيرة جدا لديك.
- 5 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته. الفرق الرئيسي بينهما هو في كيفية استخدام كل منهما في تخزين واسترجاع البيانات وخصوصا عندما يتعلق الأمر بالكائنات الكبيرة أو المعقدة كما في نماذج التعلم الآلي. pickle : هي مكتبة مدمجة في بايثون تستخدم لتسلسل (serialization) وفك تسلسل (deserialization) الكائنات. ويمكنها التعامل مع معظم الكائنات في بايثون. غالبا ما تكون بطيئة وغير فعالة مع المصفوفات الكبيرة أو الكائنات المعقدة. قد تواجه صعوبة في التعامل مع الملفات الكبيرة جدا . إليك التوثيق الرسمي لها : https://docs.python.org/3/library/pickle.html joblib : هي مكتبة خارجية وليست مدمجة كما في pickle وهي مصممة خصوصا لتسلسل الكائنات الكبيرة مثل المصفوفات الكبيرة NumPy arrays و نماذج التعلم الآلي. أكثر كفاءة مع المصفوفات الكبيرة حيث تقوم بتسلسلها بشكل أفضل وأسرع. مصممة للتعامل مع الملفات الكبيرة بشكل أفضل وتدعم التخزين المؤقت للبيانات إليك التوثيق الرسمي لها : https://joblib.readthedocs.io/en/stable/ تلخيصا لما سبق يمكنك إستخدام pickle إذا كنت بحاجة إلى حفظ واسترجاع كائنات بايثون بشكل عام. أما إذا كنت تعمل مع بيانات كبيرة أو مصفوفات أو تحتاج إلى تسريع عملية الحفظ والاسترجاع فيجب عليك استخدام joblib .
- 5 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته. نعم بالفعل من مميزات أكاديمية حسوب أنها تتضمن لك إسترداد سعر الدورة إذا تم الإنتهاء منها ولم تحصل على عمل خلال 6 أشهر . والشهادة التي أتممتها تكون بإسم الشخص الذي أنهى الدورة والذي تقدم للإمتحان حيث في الإمتحان يكون هناك محادثة صوتية لمدة 30 دقيقة لإختبارك وتقيم مدى أنهائك وتقدمك في الدورة للتخرج منها وإليك الرابط لشروط وكيفية الإمتحان : https://support.academy.hsoub.com/exams ولهذا فسيجب على من أنهى الدورة هو من يتقدم للإختبار وللأسف لن تستطيع أن تكون أنت في الواجهة بالنسبة لهذا الأمر . أما بخصوص فترة الإرجاع 6 أشهر بالنسبة للأطفال يمكنك محادثة الدعم بهذا الخصوص حيث أمور الإختبارات و الأمور المادية من خلالهم: مركز المساعدة ويرجى الإنتظار قليلا لحين الرد عليكم حيث حاليا يوجد ضغط على مركز المساعدة ومن الممكن أن يتأخر الرد قليلا.
-
لا توجد حاليا أى طرق دفع أخرى سوى paypal أو لو كان لديك بطاقة إئتمانية يمكنك الدفع من خلالهم. وإذا لم يكن لديك بطاقة فيزا أو بطاقة لدفع رسوم الدورة. يمكنك أن تجعل شخص ما يشتري لك بطاقة هدية بقيمة الدورة التي تريدها ثم استخدامها وسيتم إضافة الرصيد الخاص بقيمة البطاقة لحسابك وستجد تفاصيل عن ذلك هنا: شراء بطاقة هدية استخدام بطاقة الهدية
-
هل كل ماكينة طباعة منفصلة عن الماكينة الأخرى ؟ اى أن كل ماكينة تنتج نوع مختلف بمعنى أن كل زبون له ماكينة معينة أو يمكن أن يتم الطباعة على الماكنتين لنفس الشخص ؟ إذا كانت كل ماكينة منفصلة عن الأخرى ولكل منهما زبون مختلف . إذا يجب عليك حساب مصاريف كل ماكينة بشكل منفصل . والمصروفات الخاصة بكل ماكينة أيضا بشكل منفصل سواء كانت من الصيانة أو تغير الأحبار أو غيرها . وهكذا يمكنك حساب أرباح كل ماكينة بشكل منفصل من خلال طرح المصروفات من إجمالي المبيعات وهذا سيكون الربح للماكينة الواحدة . ويمكنك إعطاء كل شريك نسبته من هذا الربح . أما إذا كانت الماكينتين تؤديان نفس الوظيفة فهنا الأمر يعتمد عليك . هل ستستطيع توزيع العمل عليهما بالتساوي أم لا وعلى هذا الأمر يمكنك إعتبار الشريكين كشخص واحد . وحساب الأرباح بالطريقة العادية وفي النهاية قم بأخذ نسبتك من الشراكة والنسبة الأخرى قم بقسمتها على إثنين وإعطاء كل شريك نسبته من الربح . ولو كان هنا مثلا مصروفات صيانة للماكينة يمكنك خصم نسبة الصيانة من نسبتك ونسبة الشريك صاحب تلك الماكينة.
-
وعليكم السلام ورحمة الله وبركاته. نعم لا يجب عليك القلق فقد تم تصميم الدورات جميعها بترتيب مدروس ووضع هذا الترتيب لتوفير مسار تعليمي متدرج ومناسب للمبتدئين . وأيضا تهدف الأكاديمية إلى الشرح بشكل تصاعدي لضمان فهم الأساسيات قبل التعمق في المواضيع المتقدمة. وإن Scratch تعتبر بيئة برمجية تفاعلية وبسيطة يمكن استخدامها لتعلم المفاهيم الأساسية في البرمجة، مثل التسلسل، الشروط، الحلقات وغيرها. وهو مفيد لك إذا كنت تحتاج إلى تعزيز فهمك لهذه المفاهيم قبل التحرك إلى لغات برمجة أخرى أكثر تعقيدًا. حيث أنها هي لغة برمجة مرئية صممت أساسًا لأغراض تعليميّة كان هدفها تقديم مفهوم البرمجة للطلاب في أعمار مبكرة ومساعدتهم في إنشاء قصص ورسوم متحركة ومواضيع تفاعلية تعليمية بطريقة مبتكرة. ونظرًا لسهولة المبادئ التي تعمل وفقها سكراتش، بدأ استخدامها لأغراض برمجية وتقنية أخرى مثل كتابة بعض برمجيات الأنظمة المدمجة. ولذلك بما أنك تقوم أنك مبتدأ وليس لديك خلفية مسبقا عن البرمجة فإن سكراتش مناسب جدا لك . حيث لن تحتاج الآن إلى الدخول في لغات البرمجة المعقدة والصعبة قبل فهم وتضويح الأمور بشكل مبسط ومن خلال رسومات وألعاب مثل ما توفره لك لغة سكراتش. ويمكنك قراءة الإجابات التالية لمعرفة أهمية سكراتش : ويكفي حاليا إتباع الدورة بالترتيب الموجود بها وإليك الإجابات التالية لكيفية تعلم البرمجة :
- 3 اجابة
-
- 1
-
-
ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
-
إذا كنت تقصد "دورة علوم الحاسوب" فالمسارات التي ستساعدك كثيرا هي المسارات التالية : قواعد البيانات : حيث ستتعلم الكثير حول قواعد البيانات وما هي أنواعها وكيفية التعامل معها ومع البيانات الموجودة بها. البرمجة كائنية التوجه : ستساعدك على كتابة كود منظم ونظيف وأيضا التعرف على الكائنات والأصناف وكيفية إنشائها وإستخدامها. الخوارزميات وبنى المعطيات : حيث هي من أهم المسارات والتي ستساعدك في فهم كيفية التعامل مع البيانات وكيفية حفظها في الهياكل المناسبة لتلك البيانات . وأيضا ستتعلم مميزات وعيوب كل هيكل من هياكل البيانات ، وأيضا ستتعلم كيفية كتابة الخوارزميات والتفكير المنطقي وتحديد الخوارزمية المناسبة لك ولمشكلتك والتي تعطيك أفضل نتيجة وفي وقت قصير. أنماط التصميم : وهذا المسار ستتعلم أشهر أنماط التصميم والتي تحل العديد من المشاكل . حيث كل نمط من انماط التصميم تلك يحل مشكلة موجودة بالفعل ويساعدك هذا المسار في فهم المشاريع الكبيرة والتي تعتمد على أنماط التصميم المشهورة وأيضا تستطيع إستخدامها في تطبيقك لتنظيمه وحل المشاكل الشائعة بسهولة. أيضا مسار "أساسيات هندسة البرمجيات" و مسار "إعادة تصميم البرمجيات Refactoring" مهمين لك.
-
يجب أن يكون لديك حساب تجاري (شركة أو مؤسسة) لتسجيل تلك الخدمة لك. يجب عليك أن يكون لديك حساب تجاري بأحد البنوك العاملة في السعودية و التي توفر خدمة بوابة الدفع الإلكتروني مثل البنك الأهلي الراجحي وغيرهم. بعد الإتصال بالبنك الموجود به حسابك يمكنك اخبارهم بأنك تريد تفعيل خدمة مدى لديك وسيوفرون لك ال API الخاصة بتفعيل الخدمة لديك وأيضا مفاتيح التطبيق (مثل API Key و Secret Key). ويوجد العديد من بوابات الدفع التي تدعم مدى مباشرة مثل : paytabs tap paymob
-
وعليكم السلام ورحمة الله وبركاته. الفرق بين numpy.linspace و numpy.arange هو في الطريقة التي يتم بها تحديد القيم في المصفوفة. حيث linspace تستخدم لإنشاء مصفوفة تحتوي على قيم متساوية التوزيع بين start و stop. ويتم تحديد عدد النقاط المراد إنشاؤها عبر المعامل num الذي يمرر للدالة وهو 50 إفتراضيا. import numpy as np np.linspace(0, 10, 5) # [ 0. 2.5 5. 7.5 10. ] وإليك التوثيق الرسمي لها : https://numpy.org/doc/stable/reference/generated/numpy.linspace.html أنا arange فتستخدم لإنشاء مصفوفة تحتوي على قيم تبدأ من start وتصل إلى stop مع وجود فرق ثابت أي خطوة ثابته بين كل رقم والأخر من خلال المعامل step. import numpy as np np.arange(0, 10, 2) # [0 2 4 6 8] وإليك التوثيق الرسمي لها : https://numpy.org/doc/stable/reference/generated/numpy.arange.html
- 5 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته. الحوسبة السحابية (Cloud Computing) هو مصطلح يشير إلى تقديم خدمات الحوسبة مثل الخوادم والتخزين وقواعد البيانات والشبكات والبرمجيات عبر الإنترنت السحابة (cloud) بدلا من استخدام الموارد المحلية على جهازك الكمبيوتر . حيث أن جميع تلك الخدمات يتم إدارتها من خلال الإنترنت ولا حاجة إلى بنية تحتية محلية معقدة ومكلفة. الحوسبة السحابية مطلوبة في العديد من المجالات مثل تطوير البرمجيات و تحليل البيانات و الأمن السيبراني ولكنها وظيفة في حد ذاتها . لذلك إذا كنت مهتم بهذا المجال وتريد الدخول فيه وأن تصبح "Cloud Engineer" أو أن تصبح مهندس حماية "Cloud Security Specialist" فنعم يجب بالطبع تعلمها والتعمق فيها. أما إذا كنت فقط تريد إدارة مشروعك الخاص على السحابة فيكفي فقط دراسة الأساسيات. ويمكنك قراءة المقال التالي لمزيد من التفاصيل حولها :
- 4 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته. إن " دورة تطوير التطبيقات باستخدام بايثون" هي أولا تعطيكي الأساسيات الخاصة ببايثون ويتم التطبيق العملي عليها بشكل جيد . وبعد ذلك يتم التطرق لأطر العمل التي تساعدكي لبناء تطبيقات الويب . حيث ستتعلمين كيفية إنشاء مواقع الإنترت بأطر العمل المختلفة مثل flask و django وأيضا ستتعلمين odoo وكيفية إنشاء تطبيقات بإستخدام odoo وتطوير الإضافات الخاصة بها . وفي نهاية الدورة ستتعملين كيفية دمج تقنيات الذكاء الإصطناعي في تطبيقات الويب التي تم إنشاءها في الدورة وبعدها سيتم التطرق لأساسيات التعامل مع البيانات وتعلم الآلة . لهذا الترتيب يعمتد على ما تريدين تحقيقه . فهل تريدين تعلم الذكاء الإصطناعي والتعمق فيه ومن ثم دمجه في تطبيقات الويب ؟ إذا كان كذلك فيفضل البدأ مباشرة في دورة الذكاء الإصطناعي ومن ثم بعد الإنتهاء منها يمكنك مذاكرة المسار الخاص ب django و flask ومن ثم التطبيق العملي الخاص بهم ل "دمج تقنيات الذكاء الاصطناعي مع تطبيقات بايثون". أما إذا كنتي تريدن أن تصبحي مطورة تطبيقات ويب أيضا "back end" فأنصحكي ببدء دورة "تطوير التطبيقات باستخدام بايثون" أولا وبعد الإنتهاء منها يمكنكي الدخول في دورة الذكاء الإصطناعي.
- 2 اجابة
-
- 1
-
-
ستجدين أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
-
لا توجد مشكلة يمكنك حذف سطر session_start الذي أرفقته لك وتركها في بداية الملف.
- 10 اجابة
-
- 1
-
-
لا يجب ذلك بل يجب فتحها مرة واحدة في بداية الملف . اي يجب فتحها قبل استخدام _SESSION$ والا ستكون فارغة ولن يعمل الكود
- 10 اجابة
-
- 1
-
-
هل يمكنك توضيح الكود الذي قمت بكتابته ؟ لقد قمت بتجربة الكود الذي أرفقته لك وهو يقوم مرة واحدة بإعادة التحميل فقط.
- 10 اجابة
-
- 1
-
-
لم أفهم ما الفائدة من إعادة تحميل الصفحة لجلب البيانات من قاعدة البيانات يمكنك مباشرة جلبها دون إعادة تحميل الصفحة. أم تقصد أنك تريد جلب بيانات ووضعها في قاعدة بيانات أخرى ؟ عموما يمكنك ذلك من خلال وضع قيمة في ال session توضح هل تم تحميل الصفحة سابقا أم لا : <?php session_start(); // التحقق إذا كانت الصفحة قد تم تحميلها من قبل if (!isset($_SESSION['page_loaded'])) { // إذا كانت المرة الأولى، قم بتخزين الحالة في الجلسة $_SESSION['page_loaded'] = true; // يمكنك تنفيذ ما تريده هنا قبل إعادة التحميل header("Refresh:0"); } else { unset($_SESSION['page_loaded']); } هنا قمنا ببدا ال session من خلال session_start بعد ذلك نتحقق من وجود page_loaded في ال _SESSION إذا لم توجد إذا لم يتم تحميل الصفحة من قبل ويمكنك بداخل الشرط وضع أن الصفحة قد تم تحميلها و إعادة التحميل من خلال header("Refresh:0"); وهكذا يمكنك وضع ما تريد تنفيذه قبل إعادة التحميل قبل سطر header("Refresh:0");
- 10 اجابة
-
- 1
-
-
ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
-
هل تم حفظ الملف بشكل صحيح لديك قبل إغلاقه ؟ او هل حدثت مشكلة لديك في الملف أثناء فتحه ؟ حيث لاحظ أنه يتم فتح الملف كأنه ملف json . حيث أن التمثيل الداخلي لتنسيق .ipynb هو ملف json ولهذا فهو يتم حفظه كهيكل بيانات JSON ولذلك إذا حدثت مشكلة أثناء الحفظ فإن الملف سيكون تالف ولهذا لن يعرف Notebook كيف يقوم بعرضه . أو من الممكن أنك تقوم بفتحه بطريقة خاطئة حيث يجب فتحه من خلال عنوان الخادم وليس كأنه ملف نصي . حيث يجب عليك في موجه الأوامر الخاص ب anaconda أن تقوم بتشغيله من خلال الأمر : jupyter notebook بعد ذلك يمكنك تصفح الملفات من خلال الرابط التالي : http://localhost:8888/tree
-
وعليكم السلام ورحمة الله وبركاته. لا يمكنك ربط ملفين HTML ببعضهم البعض حيث HTML لا توفر تلك الميزة حاليا حيث لا يمكنك إستخدام include كما تفعل اللغات الأخرى والتي تقوم بتضمين ملفات اخري في الملف الحالي . ولكن يمكنك توفير ذلك من خلال كود جافاسكريبت : <html> <head> <script src="jquery.js"></script> <script> $(function(){ $("#includedContent").load("mobile.html"); }); </script> </head> <body> <div id="includedContent"></div> </body> </html> لاحظ أننا هنا إستعملنا مكتبة JQuery لتنفيذ ذلك . حيث لاحظ أننا أنشأنا عنصر div وله id معين وبهذا ال id نستطيع تحميل الملف ووضع محتويات الملف به . ولكن لاحظ أن تلك الطريقة ليست جيدة أبدا حيث هكذا الموقع الخاص بك لن يكون متوافق مع قواعد التصميم المتجاوب Responsive design حيث يجب أن تقوم بتحقيق ذلك من خلال التنسيقات CSS حيث يمكنك CSS من التلاعب بالعنصر في الشاشات المختلفة حيث يمكنك جعل العنصر صغيرا مثلا في الشاشات الصغيرة وفي الشاشات الكبيرة تستطيع تكبير حجمه كما تريد ويمكنك تحقيق ذلك من خلال العديد من الطرق وأهمها طرق Media Query . ويمكنك قراءة الدروس والمقالات التالية لتستطيع تحقيق ذلك وتعرف كيف تقوم بتطبيقها لديك في الكود :
-
االمشكلة ليست في الأكواد لديك . غالبا المشكلة لديك في قاعدة البيانات يبدوا أنك قد قمت بتنفيذ أمر البزر seed مرة أخرى ولذلك قام بوضع البيانات مرتين في قاعدة البيانات . تأكد أولا من أن قاعدة البيانات لديك المنتجات ليست مكررة لديك وإذا أردت يمكنك حذف قاعدة البيانات وإعادة إنشاءها مرة أخرى من خلال الأمر : php artisan migrate:fresh --seed ولكن هذا الأمر سيحذف جميع البيانات الحالية في قاعدة البيانات لذلك تأكد من أنك لا تحتاجها قبل تنفيذ الأمر السابق. وقد لاحظت أنك تستعمل distinct لمحاولة عدم تكرار المنتجات . ولكن لاحظ أن المنتجات ال id الخاص بها لا يتكرر بل الذي يتكرر هو الوصف وأسماء المنتجات ولكن ال ids مختلفة لهذا يتم إعتبارها منتجات مختلفة عن بعضها البعض.
