Mohammad Al Eik
الأعضاء-
المساهمات
199 -
تاريخ الانضمام
-
تاريخ آخر زيارة
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mohammad Al Eik
-
بإمكانك تغيير الشرط بعد كلمة WHERE لتضع الشرط الذي تريده لإظهار البيانات SELECT * //تحديد كل الأعمدة FROM Employee // من جدول الموظفين WHERE Salary > 600000 // واعرض السطر الذي يطابق الشرط الاول OR //او WHERE Department = "Banking"; //الشرط الثاني هكذا سوف يظهر لنا في الخرج الأسطر التي تطابق الشرط الأول أو الشرط الثاني
-
يمكنك ذلك باستخدام هذه التعليمة SELECT * //تحديد كل الأعمدة FROM Employee // من جدول الموظفين WHERE First_name = 'John'; // واعرض السطر الذي يطابق الشرط التالي
- 3 اجابة
-
- 1
-
أظن ان النقطة التي تسبب اللغط لديك هي هذه myString.indexOf(ele) هنا يقوم بالبحث عن اول عنصر مطابق يجده في المصفوفة myString ثم يعطينا دليله , مثلاً myString.indexOf("S") سوف يعطينا 0 دائما لأنه اول عنصر في المصفوفة myString myString.indexOf("h") سوف يعطي 2 لأنه ثالث عنصر في المصفوفة بغض النظر عن أن S و h مكررين في المصفوفة لأن indexOf تعيد أول عنصر مطابق تجده
-
يمكنك القيام بذلك بتنفيذ هذه التعليمة SELECT * //اختار كل الأعمدة FROM employees // من الجدول employees ORDER BY first_name DESC; // ترتيب المظفين حسب الاسم وسوف يطبع لك الجدول بالكامل مرتب حسب الاسم
- 3 اجابة
-
- 1
-
let myString = "SShhimmmmmaaaa"; let fiArr = myString.split("").filter(function (ele, index) { return myString.indexOf(ele) === index; }).reduce(function (acc, current) { return `${acc}${current}`; }); اولاً نحول النص الى مصفوفة let myString = "SShhimmmmmaaaa"; let fiArr = myString.split("") // [S,S,h,h,i,m,m,m,m,m,a,a,a,a] ثانياً index هي عنوان العنصر في المصفوفة أي : اول عنصر 0 الثاني 1 الثالث 2 ... ele هو العنصر بذاته أي : الاول S الثاني S الثالث h ... نقوم بداخل الدالة filter بحذف العناصر المكررة . حيث أن myString.indexOf تقوم بأرجاع اول عنوان يطابق ele في المصفوفة myString و index هو عنوان ال ele في هذه الloop كما قد وضحت لك في الشيفرة التالية كيف ستكون المقارنة في كل دورة في هذه ال loop الطرف الايسر يمثل myString.indexOf الطرف الأيمن index let myString = "SShhimmmmmaaaa"; let fiArr = myString.split("").filter(function (ele, index) { return myString.indexOf(ele) === index; // 0 === 0 => [s] // 0 !== 1 false // 2 === 2 => [s,h] // 2 !== 3 => false // 4 === 4 => [s,h,i] // وهكذا }); console.log(fiArr) // [ 'S', 'h', 'i', 'm', 'a' ]
- 3 اجابة
-
- 1
-
يمكنك ذلك بالطريقة التالية : import React from "react"; import { Carousel } from "react-bootstrap"; const reviews = [ //المصفوفة التي تحوي البيانات المراد عرضها { id: 1, image: "an image url", author: "john doe" }, { id: 2, image: "an image url", author: "jane doe" }, { id: 3, image: "an image url", author: "dane doe" } ] function Entry() {//المكون return ( <Carousel>//المكون الخاص ب بوتستراب //هنا نقوم بعملة الدخول الى المصفوفة وعرضة محتوياتها {reviews.map(review => ( //نعرض المكون لكل عنصر في المصفوفة <Carousel.Item key={review.id}> <img src={review.image} alt={review.author} /> </Carousel.Item> ))} </Carousel> ); } export default Entry;
-
خاصية الkeyExtractor هية مثل خاصية key في react.js وهي لإعطاء مفتاح مميز لكل عنصر يتم عرضه سبب المشكلة هو أنك تستخدم toString في خاصية الkeyExtractor على العنصرر item يمكنك الاستغناء عنها وسوف تحل المشكلة <FlatList data={Books} keyExtractor={item => item.id} renderItem={({item}) => <Text>{item.id}</Text>} /> أما اذا كنت تريد أن يكون ال key نوعه string بالتحديد يمكنك تحويل الindex بدلاً عن ذلك <FlatList data={Books} keyExtractor={(item, index) => index.toString()} renderItem={({item}) => <Text>{item.id}</Text>} />
-
نفذ هذه التعليمة وانظر الى الconsole بعد اختيار الصورة سوف يطبع لك معلومات الصورة التي اخترتها في object إبحث عن مفتاح path وهو الرابط الذي تريده ثم يمكنك باستخدام هذا الرابط تحديد رابط المجلد الأب ووضعه عند استخدامك هذه المكتبة react-native-background-upload يعني سوف تستخدم ال image packer فقط لتعرف رابط المجلد الذي تريد أن تقوم برفعه
-
هذه المكتبة سوف تفيدك وتحل لك المشكلة react-native-image-crop-picker فهي تدعم الأختيار المتعدد أما المكتبة التي تستعملها انت لاتدعم ذلك اولاً نقوم باستيراد المكتبة import ImagePicker from 'react-native-image-crop-picker'; ثم تنفيذ عملية الإختيار المتعدد ImagePicker.openPicker({ //هنا نقوم بتفعيل الإختيار المتعدد multiple: true }).then(images => { console.log(images); });
-
بإمكانك القيام بعمليات التحقق وإرسال الخطأ الى المستخدم , عن طريق مكتبة express-validator . اولاً قم بتحميل المكتبة باستخدام موجه الأوامر داخل مجلد المشروع الخاص بك npm install --save express-validator المثال الآتي يوضح كيفية استعمال المكتبة : //برنامج بسيط لأنشاء حساب بواسطة مدخلات const express = require('express'); const app = express(); app.use(express.json()); app.post('/user', (req, res) => { User.create({ username: req.body.username, password: req.body.password, }).then(user => res.json(user)); }); نريد أن نتحقق من المدخلات القادمة من ال request const { body, validationResult } = require('express-validator'); app.post( '/user', // هنا نضع المدققين body('username').notEmpty(), body('password').isLength({ min: 5 }), (req, res) => { // نخزن في هذا المتغير نتائج التدقيق const errors = validationResult(req); if (!errors.isEmpty()) { //هنا نقوم بإرسال مصفوفة الأخطاء إلى المستخدم return res.status(400).json({ errors: errors.array() }); } User.create({ username: req.body.username, password: req.body.password, }).then(user => res.json(user)); }, ); ويمكنك الإطلاع على جميع المدققات في هذه المكتبة من هنا
-
نعم يمكنك ذلك بإتباع الخطوات التالية : اولاً نفذ الأمر التالي في موجه الأوامر لتحميل المكتبة npm install jquery --save ثم يمكنك كتابة كود jquery في أي ملف jsx import $ from 'jquery';//هنا نقوم باستيراد هذا الرمز من مكتبة ال jquery componentDidMount() { $("button").click(function(){ // jquery code }); }
-
يمكنك تخزين الstate في الذاكرة التخزينية للمتصفح بالطريقة التالية const [value, setValue] = useState(); //هذا التابع سوف يتنفذ مرة واحدة عند اول ظهور للمكون ويقوم بالحصول على القيمة التي خزناها بذاكرة المتصفح useEffect(() => { setCount(JSON.parse(window.localStorage.getItem('value'))) }, []); // []هذا التابع يتنفذ عندما تتغير القيمة التي بين القوسين useEffect(() => { window.localStorage.setItem('value', value)//هنا نقوم بالتخزين في الذاكرة ونضع اولا اسم المفتاح ثم القيمة }, [value]) اما اذا كنت تستخدم redux فيمكنك القيام بذلك باستخدام مكتبة redux persist
-
هذه المشكلة بسبب تضارب ملفات ال lock ويمكنك حلها بالطريقة التالية : اذا كنت تستخدم مدير المكتبات yarn نفذ مايلي git rm yarn.lock //حذف الملف git commit -m "Remove yarn lock file" git push heroku master //رفع التعديلات الى هروكو اما اذا كنت تستخدم مدير المكتبات npm نفذ مايلي : git rm package-lock.json git commit -m "Remove npm lock file" git push heroku master
-
لغات ال SQL جميها متشابهة الى حد كبير ولكن يوجد بعض الاختلافات بينها . يمكنك استخدام هذا الموقع sqlines الذي سوف يساعدك بكل تأكيد. 1-ضع التعليمة خاصتك على الطرف الايسر 2-ثم عند كلمة Source اختار نوع اللغة التي تريد ان تحولها وعند كلمةtarget اختار اللغة التي تريد ان تحول اليها . 3-ثم اضغط convert 4- سيظهر الكود باللغة التي اخترتها على الطرف الأيمن
-
بامكانك القيام بذلك من دون جافاسكربت بالطريقة التالية من ملف ال HTML عبر ال form <form action="{{ url_for('handle_data') }}" method="post"> <-handle_data هو الرابط الذي تريد ان ترسل اليه بيانات الحقل-> <input type="text" name="projectFilepath"> <input type="submit"> </form> ثم داخل تطبيق الفلاسك @app.route('/handle_data', methods=['POST'])#handle_data هو رابط الذي تريد ان تستقبل منه البيانات def handle_data(): projectpath = request.form['projectFilepath'] #name attribute from the input # الكود الخاص بك #return ارجاع قيمة
- 2 اجابة
-
- 1
-
عليك في البداية تنزيل الpackage بواسطة npm , بدالخل مجلد المشروع قم بتنفيذ مايلي بواسطة موجه الأوامر npm install --save the-noun-project ثم داخل ملفات المشروع خاصتك في الملف الرئيسي var NounProject = require('the-noun-project'), nounProject = new NounProject({ key: 'foo', secret: 'bar' }); يمكنك الوصول الى key و secret الخاصين بحسابك من هنا ويمكنك الاستفادة من هذه المكتبة والوصول الى نقاط تحميل البيانات بالطريقة التالية nounProject.getIconsByTerm('goat', function (err, data) { if (!err) { console.log(data.icons); } }); ويمكنك الاطلاع على المزيد من نقاط لتزودك بالبيانات من هنا
-
في رياكت لايقوم المتصفح بعملية re-render الا اذا تغيرت ال state فلنفرض لديك state تحوي هذه المصفوفة const [state,setState] = useState(["a","b","c"]); ولنفرض اننا نريد اضافة عنصر اليها ومن ثم جعل react يقوم ب re render نقوم بما يلي : setState([...state,"d"]) العملية التي قمنا بها [...state] تقوم بانشاء مصفوفة جديدة واضافة مصفوفة state اليها , وبما أننا قمنا بانشاء مصفوفة جديدة هنا سوف يستشعر المتصفح بتغير الstate ويقوم ب re render
-
من مهام مبرمج Front-end تصميم واجهات الموقع و جعلها ملائمة لجميع قياسات شاشات الاجهزة المختلفة ولكن وظيفته لاتقتصر على هذا ابداً . يوجد مهام وجوانب يجب ان يقوم بها هذا المبرمج وان ينفذها على أعلى مستوى كأن يقوم بتنفيذ العمليات المنطقية داخل الموقع, مثال على ذلك المواقع المختصة بالمحاسبة و القيام بتنفيذ الجداول والمدخولات والمخرجات المالية كل هذه الأشياء تحتاج الى برمجة منطقية من قبل Front-end Developer ومن ثم ارسال هذه البيانات الى ال server ثم الى قواعد البيانات. ومن مهام هذا المبرمج المهمة جداً وخصوصاً في وقتنا الحالي هيَ ال SEO optimization وهيَ عملية جعل الموقع الالكتروني يظهر في مراتب اولى في عمليات البحث في google وهذه المهارة مطلوبة جداً في الوقت الحالي لقدرتها على تحسين وزيادة انتاجية ال Business , مثل انشاء متجر الكتروني سوف يكون من المميز جعل هذا الموقع يظهر في مراتب البحث الاولى عند المستخدمين في google اليس كذلك.
-
لقد قمت بفحص الموقع خاصتك على موقع pagespeed وتبين لي انك تستخدم في موقعك في تعليمة جافاسكربت document.write() العديد من أدوات اختبار أداء الويب مثل Dareboost او Google Page Speed قد نصحت بتجنب استخدام هذه التعليمة لأنه لها تأثير كبير على وقت تحميل المواقع , كما أن متصفح ال google chrome لن يقوم بتنفيذ هذه التعليمة بعد اصدار 54 . اذا كنت تستخدم هذه التعليمة لتقوم باضافة ملفات جافاسكربت خارجية داخل <script> بشكل غير متزامن async انصحك بتغيير طريقة الاضافة واستخدام خاصيتين defer و async داخل تاغ <script> مثال : <script src="demo_defer.js" defer async></script> في الصورة 1 من موقع pagespeed يظهر لك المشكلة. وفي الصورة 2 يظهر لك ملفات الجافاسكربت غير المستخدمة والتي يمكن ان تكون غير مستخدمة اي ان المتصفح لايقوم بتحميلها بسبب طريقة استدعائك الخاطء لها