اذهب إلى المحتوى

Mustafa Suleiman

الأعضاء
  • المساهمات

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

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    284

أجوبة بواسطة Mustafa Suleiman

  1. بتاريخ On 5‏/6‏/2024 at 12:18 قال NAIF:

    هل يمكنك عمل مثال للتجريب

    أضف عمودًا جديدًا في جدول الإعدادات ( في حال لديك جدول للإعدادات العامة للموقع) ليخزن خيار شكل الرابط.

    ALTER TABLE settings ADD COLUMN link_format VARCHAR(255) DEFAULT 'category';

    ثم إضافة خيار في لوحة التحكم للسماح للمستخدم بتحديد شكل الرابط،  كإضافة قائمة منسدلة dropdown في لوحة التحكم لاختيار شكل الرابط.

    وعند اختيار المستخدم شكل الرابط من لوحة التحكم، قم بتحديث قيمة إعدادات الرابط في قاعدة البيانات.

    وللتوضيح إليك مثال على كود PHP لتحديث الإعداد:

    // افترض أن لديك اتصال بقاعدة البيانات بالفعل
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        $link_format = $_POST['link_format']; // احصل على القيمة من نموذج لوحة التحكم
        $stmt = $conn->prepare("UPDATE settings SET link_format = ?");
        $stmt->bind_param("s", $link_format);
        $stmt->execute();
        $stmt->close();
    }

    وتستطيع إنشاء أو تعديل ملف .htaccess ديناميكيًا بناءً على الإعداد المحدد من لوحة التحكم.

    // احصل على إعداد الرابط الحالي من قاعدة البيانات
    $stmt = $conn->prepare("SELECT link_format FROM settings");
    $stmt->execute();
    $stmt->bind_result($link_format);
    $stmt->fetch();
    $stmt->close();
    
    // إعداد محتوى ملف .htaccess بناءً على اختيار المستخدم
    $htaccessContent = "RewriteEngine On\n";
    
    if ($link_format === 'category') {
        $htaccessContent .= "RewriteRule ^category/c-([0-9]+)\.html$ /cat.php?c=$1 [L,QSA]\n";
    } else {
        $htaccessContent .= "RewriteRule ^c-([0-9]+)\.html$ /cat.php?c=$1 [L,QSA]\n";
    }
    
    // كتابة المحتوى إلى ملف .htaccess
    file_put_contents('.htaccess', $htaccessContent);

    و إليك مثال على نموذج HTML لإضافة الخيار في لوحة التحكم:

    <form method="POST" action="path_to_your_php_script.php">
        <label for="link_format">اختر شكل الرابط:</label>
        <select id="link_format" name="link_format">
            <option value="category">www.example.com/category/c-رقم التصنيف.html</option>
            <option value="short">www.example.com/c-رقم التصنيف.html</option>
        </select>
        <input type="submit" value="حفظ">
    </form>

    وتحقق من أن الملف .htaccess لديه الأذونات الصحيحة ليتم تعديله بواسطة سكريبت PHP، ثم اختبار جميع الروابط بعد التعديل للتأكد من أن كل شيء يعمل بشكل صحيح.

    ومن الأفضل إضافة بعض التحقق والتدقيق للتأكد من أن القيم المدخلة صحيحة وتجنب أي أخطاء محتملة.

    • أعجبني 1
  2. ذلك تخوف طبيعي، ومع ما نشهده من تطورات، فكتابة الكود وحدها لا تكفي، عليك فهم ما تقوم به، فالبعض يقوم بالنسخ واللصق أو كتابة الأكواد بدون فهم لما يحدث في الخلفية أي ليس متعمق في اللغة والأساسيات، بالتالي ما الفرق بينه وبين نموذج تعلم آلي قادر على كتابة الكود؟

    لكن حاليًا هو ليس قادر على إتمام مشاريع بمفرده، لكن مجرد أداة مساعدة للمبرمج، لكن أيضًا مع التطورات قد يصل إلى إتمام مشاريع ليس معقدة تمامًا لكن مشاريع كاملة، فهنا تأتي أهمية أن يكون هناك فرق بينك وبينه أن تكون متفهم للغة والأساسيات ومتعمق بها وبمستوى متقدم مع القدرة على تنفيذ مشاريع معقدة وذلك ستكتسبه تدريجيًا، قادر على حل المشكلات وإتخاذ قرارات لأنك متفهم ومتعمق للغة البرمجية والأساسيات وما يحدث في الخلفية.

    أي في الوقت الحالي أصبح الجميع بحاجة إلى بذل جهد إضافي للتعلم والوصول لمستوى متقدم وليس الإكتفاء بكتابة الكود فقط.

    • شكرًا 1
  3. مجال جيد ولكن ليس من السهل تعلمه فهو بحاجة إلى وقت ومجهود أطول مقارنًة بتخصصات أخرى، في حال لا يوجد لديكِ دراية بأساسيات البرمجة وعلوم الحاسوب، فستحاجين إلى دراسة ذلك من خلال دورة علوم الحاسوب بالأكاديمية.

    حيث ستتعلمين بها التالي:

    • أساسيات الحاسوب وعلومه والتفكير المنطقي وما هي الخوارزميات وكيف تفيد في البرمجة
    • تطبيقات عملية على أساسيات التفكير المنطقي باستخدام بيئة سكراتش Scratch التفاعلية
    • أساسيات لغة البرمجة JavaScript وتطبيق المفاهيم التي تم شرحها باستخدامها، والتوسع في شرح التطبيقات العملية للغات البرمجة
    • أساسيات أنظمة التشغيل المختلفة وكيفية تثبيت البرمجيات اللازمة للبرمجة عليها
    • أساسيات سطر الأوامر في نظام لينكس، وشرح الأسس التي بني عليها النظام مع تطبيقها عمليًا
    • أنظمة قواعد البيانات المختلفة، مع شرح تفصيلي للغة SQL للتعامل معها
    • مبادئ أساسية في أنظمة قواعد البيانات NoSQL
    • المفاهيم الأساسية التي تبنى فيها صفحات الويب
    • مفاهيم أساسية في الشبكات والخوادم، وكيف يتم استقبال الطلبيات إلى الخادم والرد عليها
    • مبادئ الحماية والأمان في الويب

    بعد ذلك ستحتاجين إلى دورة متخصصة في الـ blockchain حيث لا يوجد دورة مخصصة لذلك بالأكاديمية.

  4. عبارة عن نوعان من مهام التعلم الآلي التي تستخدم لبناء نماذج تنبؤية، والفرق الرئيسي بينهما يكمن في طبيعة المتغير الهدف Target Variable الذي نحاول التنبؤ به.

    فالتصنيف Classification الهدف منه هو التنبؤ بفئة أو مجموعة معينة ينتمي إليها المتغير الهدف، وذلك لتصنيف البيانات إلى فئات محددة.

    تكون المخرجات عادة فئات غير مرتبة Categorical, مثل "نعم" أو "لا"، "سبام" أو "غير سبام"، أنواع الحيوانات، إلخ.

    وكأمثلة على الخوارزميات المستخدمة، فمنها الشبكات العصبية Neural Networks ودعم آلات المتجهات Support Vector Machines.

    بينما الانحدار Regression الهدف منه هو التنبؤ بقيمة مستمرة للمتغير الهدف، أي نحاول تقدير كمية معينة.

    والمخرجات عبارة عن قيم رقمية مستمرة، مثل الأسعار، الكميات، درجات الحرارة، إلخ.. مثل لتنبؤ بسعر المنزل بناءًا على المواصفات.

    وكأمثلة على الخوارزميات المستخدمة، فمنها الانحدار الخطي Linear Regression  والانحدار المتعدد Multiple Regression.

    • أعجبني 1
  5. تلك ،المفاهيم مهمة، لكنها متقدمة قليلاً في البداية، من الأفضل البدء بالأساسيات ثم التقدم تدريجياً إلى المواضيع الأكثر تخصصًا.

    فبعض تعلم الأساسيات تعتبر المرحلة الثالثة هي ما تشمل تعلم تلك الخوارزميات بالترتيب التالي:

    1.  دراسة التقسيم الهرمي وتطبيقه على مجموعات البيانات،  لتجميعها في مجموعات بناءًا على التشابه بينها، للمساعدة في فهم العلاقات بين البيانات المعقدة.
    2.  فهم تطبيقات خوارزميات الأبريوري في تحليل قواعد الترابط، للعثور على الأنماط والقواعد المترابطة في بيانات كبيرة، مثل اكتشاف العلاقات بين المنتجات في سلة المشتريات.
    3. دراسة LDA واستخدامه في تقليل الأبعاد وتحسين التصنيف، لتصنيف البيانات إلى فئات مختلفة، وهو مهم في تطبيقات مثل تعرف الوجه وتصنيف النصوص.
    4.  التعرف على MDA وتطبيقه على البيانات متعددة الأبعاد، وهو مفيد في التعامل مع البيانات التي تحتوي على العديد من المتغيرات، مما يساعد في تصنيف البيانات وتمييز الفئات بشكل أكثر دقة.
    5. فهم كيفية بناء الشبكات العصبية العميقة باستخدام طبقات متعددة، وسيساعدك ذلك في تطوير نماذج قادرة على فهم الأنماط المعقدة في البيانات.
    6. تعلم تحليل السلاسل الزمنية وتطبيقها في التنبؤ، للتنبؤ بالاتجاهات المستقبلية بناءً على البيانات التاريخية، مما يفيد في مجالات مثل التنبؤ بالأسواق المالية والتنبؤ بالطقس.

     

    • أعجبني 1
  6. قم بفتح الطرفية (التيرمنال) من قائمة التطبيقات أو بالضغط على Ctrl + Alt + T.

    ثم استخدم الأمر add-apt-repository لإضافة المستودع الجديد:

    sudo add-apt-repository repository/name

    عليك تبديل repository/name بعنوان المستودع الذي تريد إضافته.

    بعد إضافة المستودع، تحتاج إلى تحديث قائمة الحزم:

    sudo apt update

    ويوجد طريقة الثانية من خلال واجهة المستخدم، افتح "إدارة التحديثات" (Update Manager) وتستطيع العثور عليها في قائمة التطبيقات.

     

    افتح الإعدادات Settings في نافذة "إدارة التحديثات"، ثم انتقل إلى علامة التبويب "المستودعات الأخرى" (Other Software).

    ثم اضغط على زر "إضافة" Add وأدخل عنوان المستودع الذي تريد إضافته، وبعد إضافة المستودع، ستحتاج إلى تحديث قائمة الحزم. يمكنك القيام بذلك من خلال الضغط على زر "تحديث" (Refresh) أو باستخدام الطرفية:

    sudo apt update

     

  7. اختيار النموذج المناسب يعتمد على العديد من العوامل بما في ذلك طبيعة البيانات، الهدف من النموذج، والأداء المطلوب.

    بالتالي القول بأن نموذجًا معينًا مثل RandomForestClassifier هو دائمًا أفضل من LinearRegression غير دقيق،  لأن كل منهما يخدم أغراضًا مختلفة ويعمل بشكل أفضل في ظروف معينة.

    لديك LinearRegression نموذج بسيط وسهل الفهم يستخدم للعلاقات الخطية بين المتغيرات المستقلة والمتغير التابع، ومناسب في حال العلاقة بين متغيراتك خطية وتحتاج إلى تفسير بسيط للنموذج.

    بينما RandomForestClassifier نموذج أكثر تعقيدًا يستخدم للأغراض التصنيفية، ويعمل بشكل جيد عندما تكون البيانات معقدة وتحتوي على العديد من الميزات التي قد تتفاعل مع بعضها بطرق غير خطية، ويتميز بأنه يستخدم مجموعة من الأشجار decision trees ويجمع نتائجها للحصول على تصنيف أكثر دقة.

    واستخدم التحقق المتبادل لتقييم أداء النموذج على مجموعة من البيانات غير المرئية للنموذج، وقد تحتاج إلى ضبط الباراميترات للنماذج المعقدة لتحسين أدائها.

    • أعجبني 2
  8. بالضبط، ففي مكتبة scikit-learn، باراميتر normalize لم يعد موجودًا في الإصدار 0.24.0 وما بعده من النموذج LinearRegression.

    في الإصدارات الأحدث من المكتبة، عليك استخدام StandardScaler أو Normalizer من مكتبة sklearn.preprocessing لتطبيع البيانات قبل تمريرها إلى النموذج.

    للتوضيح:

    from sklearn.linear_model import LinearRegression
    from sklearn.preprocessing import StandardScaler
    import numpy as np
    
    X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
    y = np.array([1, 2, 3, 4])
    
    scaler = StandardScaler()
    X_scaled = scaler.fit_transform(X)
    
    model = LinearRegression()
    model.fit(X_scaled, y)
    
    predictions = model.predict(X_scaled)
    print(predictions)

    لاحظ تطبيع البيانات باستخدام StandardScaler قبل استخدامها في تدريب النموذج LinearRegression، وذلك يحقق نفس النتيجة التي كان يحققها استخدام الباراميتر normalize=True في الإصدارات الأقدم.

    • أعجبني 2
  9. الأمر محوره الأساسي هو قاعدة البيانات، اي عليك إنشاء مُخطط لقاعدة البيانات لحفظ بيانات العملاء من ضمنها طرق الدفع الخاصة بهم والتعاملات السابقة والمحفظة، أي يشمل التالي:

    جدول العملاء Customers Table:

    • مُعرف العميل ID
    • الاسم
    • البريد
    • كلمة المرور في شكل hash بالطبع
    • ... (أي أعمدة إضافية تحتاجها مثل عنوان العميل، رقم الهاتف، إلخ).

    جدول طرق الدفع Payment Methods Table:

    • Payment Method ID (المفتاح الأساسي): معرّف فريد لكل طريقة دفع.
    • Customer ID (مفتاح خارجي): معرّف العميل المرتبط بطريقة الدفع.
    • Payment Method Type: نوع طريقة الدفع (مثل بطاقة الائتمان، PayPal).
    • Payment Method Details: تفاصيل طريقة الدفع (مثل رقم البطاقة، تاريخ الانتهاء).

    جدول المعاملات Transactions Table:

    • Transaction ID (المفتاح الأساسي): معرّف فريد لكل معاملة.
    • Customer ID (مفتاح خارجي): معرّف العميل المرتبط بالمعاملة.
    • Transaction Date: تاريخ المعاملة.
    • Transaction Amount: مبلغ المعاملة.
    • Transaction Status: حالة المعاملة (مثل معلقة، ناجحة، فاشلة).

    جدول المحفظة Wallet Table:

    • Wallet ID (المفتاح الأساسي): معرّف فريد لكل محفظة.
    • Customer ID (مفتاح خارجي): معرّف العميل المرتبط بالمحفظة.
    • Wallet Balance: رصيد المحفظة.

    و عندما يضيف العميل طريقة دفع جديدة، يتم إنشاء سجل جديد في جدول طرق الدفع، وعندما يقوم العميل ببدء معاملة، يتم إنشاء سجل جديد في جدول المعاملات.

    إن كانت المعاملة ناجحة، يتم تحديث رصيد المحفظة في جدول المحفظة وفقًا لذلك.

    بعد ذلك عندما يطلب العميل استرداد أو إرجاع منتج، يتم تحديث رصيد المحفظة وإنشاء سجل معاملة جديد للإشارة إلى التغيير في الرصيد.

    وكنصيحة، اعتمد على الـ Tokenization لتخزين تفاصيل طرق الدفع بدلاً من تخزين المعلومات الفعلية لطرق الدفع، فالتوكنيزاشن هو عملية استبدال معلومات الدفع الحساسة برمز فريد (Token) لا يمكن استخدامه إلا في سياق محدد.

  10. ليس خاصًا بمجال معين؛ بل محرك بحث شامل للأدبيات الأكاديمية في مجموعة واسعة من التخصصات والمجالات.

    أي باستطاعتك العثور على مقالات بحثية، أطروحات، كتب، أوراق المؤتمرات، وغيرها من المصادر العلمية في مختلف المجالات، بما في ذلك الذكاء الاصطناعي، علوم الكمبيوتر، الطب، الفيزياء، العلوم الاجتماعية، وغير ذلك.

    مثلاً العثور على أحدث الأبحاث والتطورات في مجال الذكاء الاصطناعي، مما يساعدك في البقاء على اطلاع على الاتجاهات الجديدة والتقنيات المتقدمة.

    أو لو كنت تعمل على مشروع بحثي أو تحضر لكتابة ورقة علمية، فتستطيع استخدام Google Scholar لمراجعة الأدبيات الموجودة وفهم السياق الأكاديمي الذي تعمل فيه.

    وإذا أردت مصادر جيدة للمتابعة بأحدث التطورات، فإليك التالي:

    • ArXiv: منصة مفتوحة للأبحاث الأكاديمية في مختلف المجالات، بما في ذلك الذكاء الاصطناعي، حيث يمكن للباحثين نشر أوراقهم قبل مراجعتها من قبل الأقران.
    • NeurIPS: مؤتمر سنوي بارز في مجال التعلم الآلي والذكاء الاصطناعي، يجمع الباحثين لتقديم أحدث الأبحاث والتطورات في هذه المجالات.
    • alignmentforum.org: منتدى متخصص لمناقشة قضايا مواءمة الذكاء الاصطناعي مع القيم البشرية، ويركز على الأبحاث حول كيفية جعل الذكاء الاصطناعي آمنًا وموثوقًا.
    • ijcai.org: الموقع الرسمي للمؤتمر الدولي للمشاريع المشتركة في الذكاء الاصطناعي (IJCAI)، وهو مؤتمر سنوي يعرض أحدث الأبحاث في مجالات متعددة من الذكاء الاصطناعي.
    • icml.cc: الموقع الرسمي للمؤتمر الدولي للتعلم الآلي (ICML)، وهو أحد أهم المؤتمرات السنوية في مجال التعلم الآلي حيث يتم تقديم أبحاث جديدة ومبتكرة.
    • nips.cc: الموقع الرسمي لمؤتمر NeurIPS (المعروف سابقًا بـ NIPS)، وهو مؤتمر رئيسي في مجالات التعلم الآلي والشبكات العصبية، يجمع الأبحاث والتطورات الحديثة في هذه المجالات.
    • أعجبني 1
  11. عليك إنشاء جدول وسيط Intermediary Table يسمى مثلاً Service_Providers يشير إلى العلاقة بين المستخدمين (العارضين) والخدمات.

    و يحتوي الجدول على مفتاحين خارجيين، مفتاح المستخدم (user_id) ومفتاح الخدمة (service_id).

    ويجب أن يكون المستخدم المشار إليه في الجدول هو من نوع "عارضي الخدمات" عبر استخدام الدور المحدد في جدول User_Role.

    لذا، النموذج النهائي يبدو كالتالي:

    • Users: يحتوي على بيانات المستخدمين.
    • Services: يحتوي على بيانات الخدمات.
    • User_Role: يحتوي على أدوار المستخدمين.
    • Service_Providers: يحتوي على العلاقات بين المستخدمين (عارضي الخدمات) والخدمات.

    بالنسبة لتمثيل العلاقات:

    • العلاقة بين Users و Service_Providers: علاقة واحد إلى عدة (1:N).
    • العلاقة بين Services و Service_Providers: علاقة واحد إلى عدة (1:N).
    • العلاقة بين Users و User_Role: علاقة واحد إلى عدة (1:N).

    مخطط النموذج (MCD):

    Users (user_id, user_name, user_email)
    Services (service_id, service_name, service_description)
    User_Role (role_id, role_name)
    Service_Providers (service_provider_id, user_id, service_id)
    
    Users -1:N-> Service_Providers (user_id)
    Services -1:N-> Service_Providers (service_id)
    User_Role -1:N-> Users (role_id)

     

  12. في تحليل الأداء لنماذج الانحدار Regression Models، هناك عدة مقاييس بجانب متوسط مربع الخطأ Mean Squared Error - MSE لتقييم جودة النموذج.

    كل مقياس له مزاياه وعيوبه ويعتمد اختيار المقياس المناسب على السياق المحدد والتحليل المطلوب، مثلاً، MAPE غير مناسب في حال هناك قيم قريبة من الصفر في البيانات، حيث  يؤدي ذلك إلى قيم غير معقولة.

    و RMSE و MAE يقدمان معلومات عن حجم الخطأ، لكن RMSE يعطي وزنًا أكبر للأخطاء الكبيرة بسبب التربيع، بالتالي مفيد في حال كانت الأخطاء الكبيرة غير مقبولة في مشروعك.

    ولو كانت الأخطاء تتبع توزيعًا طبيعيًا، فإن MSE و RMSE يكونا أكثر ملاءمة.

    أما إن كنت تهتم بالأخطاء النسبية أكثر من الأخطاء المطلقة، إذن MAPE أو MSLE أكثر ملاءمة.

    إليك كل مقياس:

    1- Mean Absolute Error - MAE أو متوسط الخطأ المطلق:

    [
    MAE = \frac{1}{n} \sum_{i=1}^n |y_i - \hat{y}_i|
    ]

    حيث ( y_i ) هو القيمة الحقيقية و ( \hat{y}_i ) هو التنبؤ من النموذج، ويقدم MAE فكرة عن حجم الخطأ المتوقع في التنبؤات.

    2- جذر متوسط مربع الخطأ أو Root Mean Squared Error - RMSE:

    [
    RMSE = \sqrt{\frac{1}{n} \sum_{i=1}^n (y_i - \hat{y}_i)^2}
    ]

    يعبر RMSE عن نفس المعلومات الموجودة في MSE ولكن في نفس وحدة القيم الأصلية مما يسهل فهمه في بعض الأحيان.

    3- معامل التحديد (R-squared - (R^2)):

    [
    R^2 = 1 - \frac{\sum_{i=1}^n (y_i - \hat{y}i)^2}{\sum{i=1}^n (y_i - \bar{y})^2}
    ]

    حيث ( \bar{y} ) هو المتوسط الحسابي للقيم الحقيقية. يعبر ( R^2 ) عن نسبة التباين في البيانات التي يمكن تفسيرها بواسطة النموذج، وقيمته تتراوح بين 0 و 1.

    4- Mean Absolute Percentage Error - MAPE أو متوسط النسبة المطلقة للخطأ:

    [
    MAPE = \frac{1}{n} \sum_{i=1}^n \left| \frac{y_i - \hat{y}_i}{y_i} \right| \times 100
    ]

    يعطي MAPE فكرة عن حجم الخطأ الكلي كنسبة مئوية من القيم الحقيقية، وهو مفيد عند الرغبة في فهم الخطأ النسبي بدلاً من الخطأ المطلق.

    5- متوسط اللوغاريتم المربع للخطأ Mean Squared Logarithmic Error - MSLE:

    [
    MSLE = \frac{1}{n} \sum_{i=1}^n \left( \log(1 + y_i) - \log(1 + \hat{y}_i) \right)^2
    ]

    يستخدم MSLE عندما تكون القيم الحقيقية والتنبؤات قد تأخذ قيمًا صغيرة جدًا أو كبيرة، ويعطي وزنًا أكبر للأخطاء النسبية الصغيرة.

    6- إحصائية AIC (Akaike Information Criterion) و BIC (Bayesian Information Criterion):

    [
    \text{AIC} = 2k - 2\ln(L)
    ]
    [
    \text{BIC} = \ln(n)k - 2\ln(L)
    ]

    ( k ) هو عدد المعاملات في النموذج و ( L ) هو دالة الاحتمال الماكسيمالي للنموذج، وتلك الإحصائيات تأخذ في الاعتبار جودة النموذج وعدد المعاملات، ما يساعد في تجنب الإفراط في التكييف overfitting.

    • أعجبني 1
  13. بدايةً، تحتاج إلى إنشاء قاعدة بيانات لتخزين معلومات القوالب، وليكن كالتالي:

    CREATE TABLE templates (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(255) NOT NULL,
        header TEXT,
        footer TEXT,
        content TEXT
    );

    ولتتمكن من قراءة ملفات XML، تتوفر مكتبة SimpleXML المدمجة في PHP.

    فتقوم بقراءة ملف XML:

    function readXMLTemplate($filePath) {
        if (file_exists($filePath)) {
            $xml = simplexml_load_file($filePath);
            $template = [
                'header' => (string) $xml->header,
                'footer' => (string) $xml->footer,
                'content' => (string) $xml->content
            ];
            return $template;
        } else {
            throw new Exception("File not found: $filePath");
        }
    }

    وكتابة ملف XML:

    function writeXMLTemplate($filePath, $template) {
        $xml = new SimpleXMLElement('<template/>');
        $xml->addChild('header', $template['header']);
        $xml->addChild('footer', $template['footer']);
        $xml->addChild('content', $template['content']);
        $xml->asXML($filePath);
    }

    بعد ذلك إنشاء وظائف لإضافة وتعديل القوالب في قاعدة البيانات.

    إضافة قالب:

    function addTemplate($name, $header, $footer, $content) {
        $conn = new mysqli('localhost', 'username', 'password', 'database');
        $stmt = $conn->prepare("INSERT INTO templates (name, header, footer, content) VALUES (?, ?, ?, ?)");
        $stmt->bind_param("ssss", $name, $header, $footer, $content);
        $stmt->execute();
        $stmt->close();
        $conn->close();
    }

    تعديل قالب:

    function updateTemplate($id, $name, $header, $footer, $content) {
        $conn = new mysqli('localhost', 'username', 'password', 'database');
        $stmt = $conn->prepare("UPDATE templates SET name = ?, header = ?, footer = ?, content = ? WHERE id = ?");
        $stmt->bind_param("ssssi", $name, $header, $footer, $content, $id);
        $stmt->execute();
        $stmt->close();
        $conn->close();
    }

    وباستطاعتك إنشاء واجهة مستخدم باستخدام HTML وPHP لإدارة القوالب من قبل المسؤول عن الموقع، مثل صفحة لعرض القوالب وصفحة لتعديلها.

    صفحة عرض القوالب:

    <?php
    $conn = new mysqli('localhost', 'username', 'password', 'database');
    $result = $conn->query("SELECT * FROM templates");
    ?>
    <!DOCTYPE html>
    <html>
    <head>
        <title>Manage Templates</title>
    </head>
    <body>
        <h1>Templates</h1>
        <ul>
            <?php while ($row = $result->fetch_assoc()): ?>
                <li>
                    <a href="edit_template.php?id=<?php echo $row['id']; ?>"><?php echo $row['name']; ?></a>
                </li>
            <?php endwhile; ?>
        </ul>
    </body>
    </html>

    صفحة تعديل القالب:

    <?php
    $id = $_GET['id'];
    $conn = new mysqli('localhost', 'username', 'password', 'database');
    $stmt = $conn->prepare("SELECT * FROM templates WHERE id = ?");
    $stmt->bind_param("i", $id);
    $stmt->execute();
    $result = $stmt->get_result();
    $template = $result->fetch_assoc();
    ?>
    <!DOCTYPE html>
    <html>
    <head>
        <title>Edit Template</title>
    </head>
    <body>
        <h1>Edit Template</h1>
        <form action="update_template.php" method="post">
            <input type="hidden" name="id" value="<?php echo $template['id']; ?>">
            <label>Name:</label> <input type="text" name="name" value="<?php echo $template['name']; ?>"><br>
            <label>Header:</label><br><textarea name="header"><?php echo $template['header']; ?></textarea><br>
            <label>Footer:</label><br><textarea name="footer

     

  14. ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس وذلك لمساعدتك بشكل أفضل

  15. هل قمتي بتشغيل unity كمسؤول administrator؟

    أيضًا في حال كان اسم مجلد المشروع يحتوي على أية حروف خاصة عليك حذفها مثل ) أو -  أو ' ، وأيضًا أسماء الملفات في المشروع وعدم استخدام أسماء عربية.

    أيضًا تأكدي من تثبيت NDK  من خلال Unity Hub وتفقد المسار path  الخاص به في Unity.

    وفي حال استمرار المشكلة عليك التعليق أسفل السؤال، وأيضًا مشاركة كامل رسالة الخطأ.

  16. ليس المطلوب منك ذلك وذلك ليس ممكننًا، المطلوب هو الإهتمام بالأساسيات وليس المكتبات والإطارات، بعدها تستطيع الإهتمام بذلك.

    للتوضيح بخصوص الأساسيات أقصد ما يلي:

    فهم الأساسيات المتعلقة بأنواع النماذج المختلفة مثل الانحدار Regression، التصنيف Classification، وخفض الأبعاد Dimensionality Reduction.

    والتعمق في النماذج الشائعة،  ركز على النماذج الأكثر شيوعًا واستخدامًا مثل:

    • الانحدار الخطي (Linear Regression)
    • الانحدار اللوجستي (Logistic Regression)
    • شجرة القرار (Decision Tree)
    • الغابات العشوائية (Random Forest)
    • آلات الدعم المتجهة (Support Vector Machines)
    • K-الأقرب جار (K-Nearest Neighbors)
    • شبكات العصبية (Neural Networks)
    • تحليل المكونات الرئيسية (PCA)

    وفهم مفاهيم التقييم والتحقق، مثل دقة النموذج Model Accuracy، الالتباس Confusion Matrix، والتحقق المتقاطع Cross-Validation.

    أي عليك التمكن من استخدامها بشكل متقدم نوعًا ما بحيث تستطيع تنفيذ مشاريع كاملة من خلالها،  وسيتم سؤالك عن الأمور الهامة بها وليس كل شيء.

    • أعجبني 1
  17. في حال كان لديك إضافة adblock فغالبًا ذلك سبب المشكلة، استخدم uBlock Origin فتلك الإضافة لا تسبب مشكلة.

    إن استمرت  أرجو تجربة تحميل وتثبيت Cloudflare WARP فهو بمثابة طبقة وسيطة مثل الـ VPN من خلال شبكة Cloudflare وبعد التثبيت قم بتشغيل التطبيق بالضغط على زر الإتصال مباشرًة وتفقد الدروس مرة أخرى.

    وذلك لتفقد هل يوجد مشكلة بالإنترنت أم لا.

    • شكرًا 1
  18. الأمل ممل بالفعل وبحاجة إلى صبر، في حال لا يوجد من يشاركك نفس الإهتمام، يمكنك تفقد المجتمعات الخاصة بدراسة ما تريده مثل البرمجة، لديك مجتمع IO  وأيضًا لديك مجموعات الفيس بوك أو LinkedIn بحيث تقوم بإنشاء حساب والتواصل مع من لديهم نفس الإهتمام ونفس المستوى في رحلة الدراسة، قم بالسؤال عن مجموعة قائمة بالفعل للإشتراك بها والتواصل مع من بها.

  19. بتاريخ On 26‏/5‏/2024 at 22:06 قال Ahmed Malek:

    هل من الممكن ان توضح اكثر بالكود لو سمحت؟

    هل تم حل المشكلة؟

    للتوضيح:

    const data = fetchDataFromServer();
    
    console.log(data); // قم بطباعة data وتفقد ما الذي يتم إعادته
    
    const result = data.map(item => item.value); // هنا قد تواجه مشكلة إذا لم تكن data مصفوفة
    
    console.log(result);

     

  20. لديكِ مشكلة في عملية تحويل التعليمات البرمجية باستخدام IL2CPP (Intermediate Language To C++) في Unity. 

    حاولي إعادة تشغيل Unity لكن كمسؤول أي البحث عنه في شريط البحث بالأسفل في الويندوز ثم اضغطي بزر الفأرة الأيمن ثم اختاري run as administrator، وإعادة التجربة.

    وإن استمرت المشكلة عليكِ تنظيف وإعادة بناء المشروع من خلال التوجه إلى Edit > Project Settings > Editor ثم اضغطي على زر Clean.

    ثم إعادة بناء المشروع من خلال التوجه إلى Build ثم اختاري  Rebuild Project.

     

×
×
  • أضف...