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

Khaled Osama3

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

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

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

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

    1

كل منشورات العضو Khaled Osama3

  1. يجب تغيير اسم ملف home.html الي home.php
  2. في الاغلب يكون هذا هو الكود ولكن من الممكن ان يختلف من شخص لاخر $servername = "localhost"; $username = "root"; $password = ""; $dbname = "Legacy"; // اسم قاعدة البيانات يمكنك تجربه مره اخري
  3. سأجيب على أسئلتك بالترتيب: 1- كيف يتم تحديث الـ API بشكل لحظي؟ - بعض الـ APIs تقوم بتحديث البيانات بشكل تلقائي باستخدام تقنيات مثل webhooks أو WebSockets . فمثلاً API للطقس عادة ما تستقبل البيانات بشكل مستمر من مراكز الأرصاد الجوية وتقوم بتحديثها لحظياً عبر الـ API. 2- الأدوات اللازمة لربط الـ API بواجهة مستخدم: - يمكن استخدام مكتبة Python مثل Requests لجلب البيانات من الـ API عبر طلبات HTTP. أما لبناء واجهة المستخدم فيمكن استخدام Flask أو Django لبناء صفحات ويب تعرض البيانات, بالنسبة لـ Streamlit، نعم، يمكنك استخدامها أيضًا لإنشاء واجهة المستخدم بشكل سريع وسهل. 3- هل يمكن ربط موقع بـ AdSense مباشرة؟ - نعم يمكن ربط موقع الـ API بـ AdSense مباشرة إذا كان الموقع مطابق لسياساتهم. لكن عادة ما يستغرق الموافقة على الطلب بضعة أسابيع. ولتحسين الـ SEO يمكن استخدام كلمات بحثية ذات صلة بخدمة الـ API مثل : 1. الكلمات الرئيسية (Keywords): استخدم كلمات رئيسية ذات صلة بالمحتوى الخاص بك. 2. عناوين الصفحات (Page Titles): جعلها واضحة ووصفية. 3. الوصف الخاص بالصفحة (Meta Description): كتابة وصف موجز وجذاب للصفحة. 4. الروابط الداخلية (Internal Links): ربط صفحات موقعك الداخلية ببعضها البعض. 5. صور متناسقة (Optimized Images): ضغط الصور واستخدام النص البديل (Alt Text). 6. روابط ذات جودة (Quality Backlinks): الحصول على روابط من مواقع ذات سمعة جيدة. 7. تحسين سرعة التحميل (Page Speed): استخدام صور مضغوطة وتقنيات تحسين الأداء. 8. محتوى فريد وجودة عالية (High-Quality Content): إنشاء محتوى جذاب ومفيد للزوار. https://io.hsoub.com/programming/22454/comment/104409
  4. يبدو انه يوجد لديك خطأ انه لا يتصل بقاعده البيانات يرجي التاكد من انك غيرت هذه البيانات وكتبت بيانات صحيحه للاتصال بقاعده البيانات $servername = "اسم_الخادم"; $username = "اسم_المستخدم"; $password = "كلمة_المرور"; $dbname = "Legacy"; // اسم قاعدة البيانات
  5. يمكنك تجربه هذا الكود <!DOCTYPE html> <html lang="ar"> <head> <link rel="icon" href="https://c0.klipartz.com/pngpicture/573/614/gratis-png-ng%C5%A9-hanh-s%C6%A1n-distrito-casa-apartamento-inmobiliaria-volta-redonda-venta-de-logotipos-de-bienes-raices.png" /> <title>موقع العقارات</title> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Tajawal:wght@300&display=swap" rel="stylesheet"> <meta charset="utf-8" /> <link rel="stylesheet" type="text/css" media="screen" href="home.css"> </head> <body> <header> <div> <img src="a.png" alt="نظام العقارات من كمال تجريبي"> </div> <center> <div> <button>نقاط البيع</button> <button>أدارة المخزون</button> <button>الإراضي</button> <button>الشيكات</button> <button>الأستاذ العام</button> <button>إدارة النظام</button> </div> </center> </header> <?php // اتصال بقاعدة البيانات $servername = "اسم_الخادم"; $username = "اسم_المستخدم"; $password = "كلمة_المرور"; $dbname = "Legacy"; // اسم قاعدة البيانات $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("فشل الاتصال: " . $conn->connect_error); } // استعلام SQL $sql = "SELECT * FROM Problemss"; $result = $conn->query($sql); ?> <table border="1" width="100%"> <tr> <th>تم</th> <th>الحلول</th> <th>المشكلة</th> <th>م</th> <th>الرقم</th> </tr> <?php if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo "<tr> <td>" . $row["تم"] . "</td> <td>" . $row["الحلول"] . "</td> <td>" . $row["المشكله"] . "</td> <td>" . $row["م"] . "</td> <td>" . $row["الرقم"] . "</td> </tr>"; } } else { echo "<tr><td colspan='5'>لا توجد نتائج</td></tr>"; } // إغلاق الاتصال بقاعدة البيانات $conn->close(); ?> </table> </body> </html> ولكن لا تنسي ان تغير ال extension الملف من html ل php (home.php)
  6. يمكنك ان تضغط ع هذا الجدول نقره يمني بالماوس ستظهر لك قائمه يمكنك ان تختار منها هذا الخيار "Select Top 1000 Rows" هذا الخيار سيعرض لك 1000 صف من الجدول
  7. هل تريد تعديله ليصبح بلغه PHP ؟
  8. اذا كنت تريد ربط صفحة HTML بقاعدة بيانات SQL Server باستخدام لغة PHP, اليك مثال بسيط: 1. إنشاء ملف PHP جديد وسميه مثلا connect.php. 2. كتابه الكود التالي في الملف للاتصال بقاعدة البيانات: <?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } 3. اضافة أمر SQL لاسترجاع البيانات مثل: <?php $sql = "SELECT * FROM اسم_الجدول"; $result = mysql_query($sql); if (mysql_num_rows($result) > 0) { while ($row = mysql_fetch_assoc($result)) { echo "اسم: " . $row["اسم"] . " - عمر: " . $row["عمر"] . "<br>"; } } else { echo "0 نتائج"; } mysql_close($conn); ?> ثم حفظ الملف connect.php ثم استدعاؤه من ملف HTML باستخدام تعليمة include أو require. 4. إظهار النتائج في صفحة HTML: <!DOCTYPE html> <html> <head> <title>صفحة العرض</title> </head> <body> <h2>البيانات من قاعدة البيانات</h2> <?php // الكود الخاص بالاتصال بقاعدة البيانات والاستعلام ?> </body> </html>
  9. هنا بعض الخطوات العامة لتحويل مشروع مكتوب بلغة C++ إلى ملف تنفيذي (.exe): 1. تأكد من أن كل ملفات الشفرة المصدرية (.cpp) والتعريف (.h) مرتبطة بشكل صحيح في ملف مشروع الـ Visual Studio. 2. أضف أي مكتبات خارجية أو ملفات رأس مطلوبة للمشروع. 3. حدد إصدار النظام المستهدف هل هو 32 بت أو 64 بت. 4. ضع الكود التنفيذي المطلوب تشغيله عند بدء تشغيل البرنامج في دالة main(). 5. في Visual Studio، اختر بناء المشروع من قائمة Build - Build Solution. 6. سيتم توليد الملف التنفيذي بامتداد exe في مجلد output folder. 7. يمكن توزيع الـ exe مع أي ملفات مساعدة أخرى مثل المكتبات الخارجية لتشغيل البرنامج على أجهزة أخرى.
  10. لا يمكن ربط صفحة HTML بقاعدة بيانات SQL Server باستخدام لغة CSS وحدها. لغة CSS (Cascading Style Sheets) هي لغة تقديم وتنسيق المحتوى على الويب، وهي مسؤولة عن جانب التصميم والمظهر البصري للصفحة، أما وظيفة الربط بين الصفحة وقاعدة البيانات فتتطلب استخدام لغة برمجة أخرى تتيح الاتصال بقاعدة البيانات وإجراء الاستعلامات. الطرق التي شرحتها سابقاً باستخدام لغات برمجة مثل PHP أو ASP.NET أو واجهة برمجة تطبيقات هي الأنسب لغرض الربط، بينما لا يمكن لـ CSS القيام بهذا الدور. فال CSS يستخدم عن طريق يتم إنشاء صفحة HTML عادية مع تضمينها لملف CSS لتنسيق المحتوى على الويب.
  11. هناك طرق عديده لربط صفحة HTML بقاعدة بيانات SQL Server منها: 1- استخدام لغة PHP: - يتم إنشاء ملف PHP ويتضمن الأكواد التي تربط بقاعدة البيانات (استخدام mysql_connect) - يتم استدعاء طلبات SQL لاسترجاع أو إدخال البيانات - يتم عرض النتائج داخل ترميز HTML 2- استخدام لغة ASP.NET: - يتم إنشاء ملف ASPX ويتضمن الأكواد التي تربط بقاعدة البيانات (استخدام SqlConnection) - يتم استدعاء طلبات SQL لاسترجاع أو إدخال البيانات - يتم عرض النتائج داخل ترميز HTML 3- استخدام خدمة ويب (RESTful API): - يتم برمجة واجهة برمجة التطبيقات للوصول لقاعدة البيانات - تتم طلبات HTTP من الصفحة HTML للحصول على البيانات - يتم تحويل البيانات لتنسيق JSON أو XML
  12. لا تقلق، ما تواجهه أمر طبيعي في تعلم مجال جديد خاصة بالتكنولوجيا والبرمجة. اليك بعض النصائح قد تساعدك: استمر في تعلم الجافاسكربت باستخدام مصادر موثوقة مثل كتب وكورسات عالية الجودة واعطيها وقتها ولا تستعجل في تعلمها. إذا وجدت مصطلحًا أو مفهومًا غير معروف، لا تخجل من سؤال زملائك أو البحث عنه في المواقع والمنتديات. وتذكر ان هذا المجال قديم وبالطبع يوجد ناس تعمل به من سنين ونحن غير ملزمين بمعرفه كل شئ في هذا ولكن مهمتنا معرفه الاساسيات ثم تطبيق مشاريع صغيره وهكذا. بالصبر والمثابرة ستتقلص الفجوات.
  13. جزاك الله خيرا. طريقة حفظ الأعمدة دون طباعتها في الجدول، يمكنك حفظ قيم الأعمدة في متغيرات منفصلة بدلاً من إضافتها للجدول مباشرة. مثال: # حساب العمود الأول col1_values = Table.iloc[:, [5,6]].max(axis=1) # حساب العمود الثاني col2_values = Table.iloc[:, [10,11]].max(axis=1).apply(lambda x: 50 if x > 50 else x) # استخدام القيم في العملية التالية Table['3أكبر_قيمة'] = Table.apply(lambda row: col1_values[i] if col2_values[i]==0 else col2_values[i] if 0 < col2_values[i] <= 50 else None, axis=1) فهذا يحافظ على القيم دون إضافتها للجدول. اما هذا الكود محتاج بعض التعديلات: 1. لا تضف القيم مباشرة للمتغيرات repeated، بل احفظها في متغيرات مستقلة 2. استخدم المؤشر i للوصول لقيم المتغيرات داخل الدوال 3. حساب قيم الأعمدة خارج الدوال وليس داخلها repeated_values1 = [] repeated_values2 = [] col1_values = [] col2_values = [] for i in range(len(Table)): repeated_values1.append(df.iloc[6,3]) repeated_values2.append(df.iloc[3,4]) Table['إسم المادة'] = repeated_values1 Table['العام الدراسي'] = repeated_values2 Table.fillna(0, inplace=True) col1_values = Table.iloc[:, [5,6]].max(axis=1) col2_values = Table.iloc[:, [10,11]].max(axis=1).apply(lambda x: 50 if x > 50 else x) Table['3أكبر_قيمة'] = Table.apply(lambda row: col1_values[i] if col2_values[i]==0 else col2_values[i] if 0 < col2_values[i] <= 50 else None, axis=1)
  14. لابد اولا من فهم ما يلي: - Dependency Injection: هنا يتم حقن تابع الـ Project كائن داخل الوظيفة، بدلاً من اننا نقوم بإنشائه داخل الوظيفة. - Route Model Binding: عندما نضع معلمة من نوع Model كـ Project في المسار، فإن Laravel يقوم تلقائياً بالبحث عن السجل المطابق للـ id وتمريره. أي أن لارافيل يقوم بالبحث بنفسه وتمرير النموذج المطلوب دون أن نحتاج للقيام به والافتراضي لها هو الid . مثال: Route::get('/project/{project}', function (Project $project) { return $project->name; }); هنا project سيحتوي مباشرة على البيانات بدون الحاجة لاستدعاء find. في المقابل لو استخدمنا: Route::get('/project/{id}', function ($id) { return Project::find($id)->name; }); فهنا سنقوم بالبحث يدويا. تستخدم هذه الطريقة عندما نريد أن يقوم لارافيل بالبحث تلقائيا دون الحاجة للقيام به يدويا. ويمكننا عمل Route Model Binding عن طريق اي حقل يكون unique, فهكذا يمكننا اخبار لارافل ان تفعل ال Route Model Binding لحقل ال slug Route::get('/projects/{project:slug}', 'ProjectController@show'); public function show(Project $project) { // يمكنك الوصول إلى حقول النموذج هنا باستخدام الـ slug $projectName = $project->name; $projectDescription = $project->description; // ... }
  15. نعم، إدارة الإعتماديات والإصدارات قد تكون صعبة في البداية في كل من React Native وFlutter. لكن Flutter بشكل عام يعتبر أسهل في التعامل والتطوير لعدة أسباب: - لغة البرمجة الوحيدة هي Dart، بينما React Native يتطلب JavaScript أيضًا. - Flutter يوحد المظهر والسلوك عبر كل الأجهزة، بينما React Native قد تختلف بعض التفاصيل. - Flutter يدعم hot reload مما يسرع عملية التطوير. - الواجهات في Flutter أكثر سلاسة ويسر من React Native. أما من حيث الأداء فكلاهما يعتبران جيدين، لكن Flutter ربما يتفوق قليلا لأنه مصمم من الأساس لتطوير التطبيقات عبر الأجهزة. وفيما يتعلق بسوق العمل فكلاهما يحظيان بطلب كبير لكن React Native سباق في هذا الصدد لأنه موجود منذ فترة أطول. بشكل عام يمكن القول أن فلتر أسهل في التعامل والتطوير للمبتدئين، في حين يبقى React Native الأكثر طلبًا حاليًا في سوق العمل.
  16. هناك خطأ في الكود عند استخدام apply و lambda: - يجب استخدام apply مع دالة معرفة مسبقا وليس بصيغة lambda. - في صيغة lambda يجب استخدام متغير واحد فقط x وليس إشارة للمصفوفة مباشرة. الكود الصحيح: def func(x): if 0 < x < 50: return Table.iloc[:, 14] else: return x Table['3أكبر_قيمة'] = Table.iloc[:, 15].apply(func) أو بدون استخدام lambda/func: Table['3أكبر_قيمة'] = Table.iloc[:, 15].apply(lambda x: Table.iloc[:, 14] if 0 < x < 50 else x) في الكود الأصلي كان هناك خطأ في استخدام apply مع lambda وإشارة مباشرة إلى المصفوفة داخلها. حسنا اخي هذا هو الكود بعد اضافه المطلوب Table.fillna(0, inplace=True) Table['3أكبر_قيمة'] = Table.apply(lambda row: row.iloc[14] if row.iloc[15] == 0 else row.iloc[15] if 0 < row.iloc[15] < 50 else None, axis=1)
  17. المشكلة هنا تحدث بسبب وجود قيم None في الأعمدة المراد مقارنتها. عندما تحاول مقارنة None مع رقم عن طريق > فإنه لن يسمح بذلك لأن None ليست قيمة رقمية. هناك عدة طرق لحل هذه المشكلة: 1- استبدال قيم None بقيمة أخرى مثل 0 قبل عملية المقارنة: Table.fillna(0, inplace=True) 2- تجاهل الصفوف التي تحتوي على None: Table = Table[Table[col1].notna() & Table[col2].notna()] نعم يمكن تعديل الكود لتطبيق الشرط المطلوب: # ايجاد اكبر قيمة بين العمودين 14 و 15 max_col = Table.iloc[:, [14,15]].max(axis=1) # تطبيق الشرط Table['3أكبر_قيمة'] = max_col.apply(lambda x: Table.iloc[:, 14] if 0 < x < 50 else x ) نقوم بإيجاد أكبر قيمة بين العمودين رقم 14 و 15 في DataFrame المسمى `Table`. ثم نقوم بإضافة عمود إلى DataFrame يسمى '3أكبر_قيمة'. ثم نطبق دالة (function) على كل قيمة في `max_col`. الدالة هنا هي `lambda x: Table.iloc[:, 14] if 0 < x < 50 else x`. إذا كانت القيمة `x` بين 0 و50، فإن القيمة المطلوبة تكون `Table.iloc[:, 14]` (قيمة في العمود 14). إذا لم تكن تلبي هذا الشرط، يتم استخدام القيمة الأصلية `x`.
  18. حسنا اخي يمكنك استخدام داله apply في مكتبه pandas بمساعده داله lambda وتعديل سطر الكود لهذا df['أكبر_قيمة'] = df.iloc[:, 2:5].max(axis=1).apply(lambda x: 50 if x > 50 else x) نحن هنا اضفنا شرط لو كانت القيمه الكبري اكبر من 50 ستظل 50, لكن لو اصغر سياخذ القيمه الكبري حل اخر يمكنك استخدام for loop سيتكرر هذا الكود لكل صف في الداتا يقوم أولاً بحساب القيمه الكبري مثل الكود السابق وتخزينها في عمود "أكبر_قيمة". ثم يتكرر فوق هذا العمود ويستبدل أي قيمة أكبر من 50 بـ 50. يمكنك اضافه هذا الكود بعد مباشره تكوين عمود 'أكبر_قيمة' for i in range(len(df['أكبر_قيمة'])): if df['أكبر_قيمة'].iloc[i] > 50: df['أكبر_قيمة'].iloc[i] = 50
  19. بالطبع هذا الكود بالاعلي يفعل هذا عندما يجد قيمه فارغه سياخذ القيمه الاعلي ويمكنك اضافه هذا السطر لملئ كل القيم الفارغه بقيمه = 0 df.fillna(0, inplace=True)
  20. عن طريق استخدام فانكشن max و تخزين القيمه الاكبر في عمود اسمه "أكبر_قيمة" df['أكبر_قيمة'] = df.iloc[:, 2:5].max(axis=1) // تم تعديله ولقد استخدمنا axis = 1 لكي ينظر لمحور X الافقي, يعني العثور على القيمة القصوى (الأكبر) في كل صف .
  21. نعم بالطبع سأكتب لك الكود الجديد ولكن الاختلاف في الكود صغير اليك مثال اخر: import pandas as pd # قراءة الملف الإكسل df = pd.read_excel('file.xlsx') // تم تعديله # تكوين عمود جديد لتخزين أكبر القيم في كل صف df['أكبر_قيمة'] = df.iloc[:, 2:5].max(axis=1) // تم تعديله # حفظ النتيجة df.to_excel('output.xlsx', index=False) # index=False لعدم حفظ الأرقام الخاصة بالصفوف `iloc` هي وسيلة للوصول إلى البيانات في DataFrame باستخدام تعيين الفهرس (integer-location based indexing). يتيح لك `iloc` تحديد الصفوف والأعمدة بناءً على مواقعها بالفهرس، بدلاً من استخدام الأسماء. تستخدم `iloc` بهذه الطريقه: data.iloc[row_index, column_index] بالمثال السابق، `df.iloc[:, 2:5]` يعني استخراج كل الصفوف والأعمدة من الثالثة (العمود 2) إلى الخامسة (العمود 4).
  22. حسنًا، هذا الكود قد يحقق المهمة المطلوبة: import pandas as pd # قراءة الملف الإكسل df = pd.read_excel('file.xlsx', usecols=[2,3,4]) # تكوين عمود جديد لتخزين أكبر القيم في كل صف df['max'] = df.max(axis=1) # حفظ النتيجة df.to_excel('output.xlsx', index=False) # index=False لعدم حفظ الأرقام الخاصة بالصفوف
  23. باستخدام لارافيل: يمكنك تخزين الملف عندك في Storage وتحفظ المسار فقط في الداتابيز وعندما تريد عرض او تحميله فقط ستذهب لكل ملف الي المسار خاص به 1. إنشاء موديل PdfFile وأضف حقلين، أحدهما لاسم الملف والآخر للمسار path: $table->string('name'); $table->string('path'); 2. في ميثود التحميل ضع الملف في مجلد uploads بداخل storage: $file = $request->file('file'); $fileName = $file->getClientOriginalName(); $path = $file->store('uploads','public'); عندما نستخدم store مع إعطاء اسم المجلد كـ'uploads'، فإن لارافيل سيقوم تلقائيا بإنشاء هذا المجلد داخل storage/app/public إن لم يكن موجوداً مسبقاً. ثم يقوم بتخزين الملف داخل هذا المجلد. بحيث يكون المسار النهائي للملف هو: storage/app/public/uploads/file-name.pdf 3. احفظ المسار فقط في حقل path بدلاً من الملف: $this->path = $path; $this->name = $fileName; $this->save(); 4. عند العرض أو التحميل، اذهب مباشرة إلى المسار: <a href="{{ asset('storage/' . $pdf->path) }}"> تحميل </a> بهذه الطريقة سيتم تخزين الملفات فعلياً في storage والاحتفاظ بالمسار فقط في الداتابيز. https://wiki.hsoub.com/Laravel/filesystem
  24. المشكلة هنا يبدو انه يستخدم اسم "emailOrUsername" كاسم عمود في الاستعلامات where و orWhere. يمكنك تجربه هذا الحل: $user = User::where(function ($query) use ($request) { $query->where('email', $request->emailOrUsername) ->orWhere('username', $request->emailOrUsername); }) ->first(); هذا التحديث يستخدم دالة where لتحديد الشرط ويستخدم orWhere داخلها لتحديد أن يكون الحقل إما email أو username. او تجربه هذا الحل: $user = User::where('email', $request->input('emailOrUsername')) ->orWhere('username', $request->input('emailOrUsername')) ->first(); بهذه الطريقة ستستخدم القيمة الفعلية المرسلة في حقل emailOrUsername وليس اسم الحقل نفسه كاسم عمود.
×
×
  • أضف...