-
المساهمات
2193 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
65
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
أجوبة بواسطة Yomna Raouf
-
-
التقنية المستخدمة في هذا الأمر هي ajax هي اختصار ل Asynchronous JavaScript and Xml و هي تقنية مستخدمة في جميع مواقع الويب هذه الأيام و تمكننا هذه التقنية من التنقل داخل المواقع دون إعادة تحميل الموقع في كل مرة نطلب فيها صفحة ما فمثلًا في موقع حسوب عندما نتنقل بين أسئلة البرمجة و أسئلة العمل الحر مثلًا لا يتم تحميل الموقع بأكمله و إنما يتم تحميل الجزء الذي يعرض الأسئلة فقط. و تمكننا أيضًا من طلب بيانات من الخادم بعد أن تم تحميل الموقع و العديد من المزايا الأخرى.
لنأخذ المثال التالي لنتعرف كيفية تطبيق هذه التقنية:
لنفرض أمه لدينا ال form التالية:
<!DOCTYPE html> <html> <head> <title>PHP MySQL Insert Tutorial</title> <script src='https://code.jquery.com/jquery-2.1.3.min.js'></script> </head> <body> <form action='insert.php' method='post' id='myform' > <p> <input type='text' name='username' placeholder='user name' id='username' /> </p> <p> <input type='text' name='password' placeholder='password' id='password' /> </p> <button id='insert'>Insert</button> <p id='result'></p> </form> </body> </html>
و ال script التالي "ملف insert.php" لإضافة بيانات لقاعدة البيانات:
<?php // ثوابت الاتصال define('HOST','localhost'); define('USERNAME', 'root'); define('PASSWORD',''); define('DB','mydatabase'); // جملة الاتصال بقاعدة البيانات $con = mysqli_connect(HOST,USERNAME,PASSWORD,DB); // form قراءة البيانات التي تم إرسالها من ال $username = $_POST['name']; $pass = $_POST['pass']; // إدخال هذه البيانات لقاعدة البيانات $sql = "insert into users (username, password) values ('$username','$pass')"; if(mysqli_query($con, $sql)){ echo 'success'; } ?>
الآن سنقوم باستخدام ajax لإدخال البيانات إلى قاعدة البيانات بدون تحديث الصفحة:
سنقوم بإنشاء ملف يسمى insert.js و نقوم بتضمينه في الملف الذي يحتوي html form:
<script src='insert.js'></script>
الآن سنستخدم الأكواد التالية لمنع ال form من إعادة التوجيه إلى insert.php "لاحظ ال action الخاص بال form":
$('#myform').submit(function(){ return false; });
إذا قمت بالضغط على ال insert button الآن لن يحدث شئ.
الآن سنقوم بتنفيذ أكواد php في الخلفية باستخدام التابع jquery.post:
$.post( 'script to execute', 'values to send', function(result){ //get the output of the script } );
سنقوم باستخدام الطريقة jquery.post السابقة داخل دالة الضغط على الزر، ليصبح الشكل النهائي لملف insert.js كما يلي:
$('#myform').submit(function(){ return false; }); $('#insert').click(function(){ $.post( $('#myform').attr('action'), $('#myform :input').serializeArray(), function(result){ $('#result').html(result); } ); });
و بذلك نكون قد تمكنا من إدخال البيانات في قاعدة البيانات بدون تحديث الصفحة.
-
بتاريخ 9 ساعات قال مروان مروان3:
كنت ارغب بتحديث نسخة اكس كود ولكن في المتجر يخبرني انها تعمل على اصدار 10.15.4
وانا لدي نسخة Catalina 10.15.3
حسنًا.
أعتقد أنه بإمكانك تثبيت Catalina 10.15.4 من هنا ثم تحديث xcode و تنزيل الملفات :
بتاريخ 10 ساعات قال Yomna Raouf:ثم تنزيل هذه الملفات و وضعها في هذا المسار:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/
-
بتاريخ 10 ساعات قال مروان مروان3:
مع الاسف اخوي اني سبق وقمت بتجربة كل ذلك ولم ينجح الامر
اما بنسبة لوضع المحاكي التطبيق شغال على المحاكي 110/100
مع الاسف انني سبق وقمت بعمل كل ذلك ولم ينجح الامر
هل يمكنك تحديث نسخة xcode إلى 12.2beta
ثم تنزيل هذه الملفات و وضعها في هذا المسار:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/
و إخباري بالنتائج؟
-
1
-
-
بتاريخ 9 ساعات قال مروان مروان3:
Catalina 10.15.3
IOS 14.2
XCODE 11.7
النسخ التي تستخدمها متوافقة.
هل يمكنك تجربة الخطوات التالية:
- فصل الاقتران بين ءcode و الهاتف Unpair the device in Xcode.
- تنظيف ملفات المشروع Clean the project.
- فصل الهاتف من جهاز الحاسوب Unplug and then restart iPhone.
- إعادة تشغيل xcode Restart Xcode.
- و التجربة مرة أخرى
من المفترض أن يعمل بعدها بشكل صحيح
-
1
-
من الممكن أن يكون السبب في هذا هو عدم توافق ال configurations الخاصة بجهازك مع نسخة xcode، هل يمكنك أن تخبرنا بنسخة ios و xcode التي تستخدمها ؟
-
1
-
-
بتاريخ 12 ساعات قال عبدالله عمر احمد:
لم افهم
مرحبًا و @عبدالله عمر أحمد@Rawad Altaib
هل يمكنك التوضيح أكثر حتى نتمكن من مساعدتك بشكل أفضل؟؟
--
و لكن في العموم يوجد أكثر من طريقة لرفع المشاريع الخاصة بك على github.
أحد هذه الطُرُق:
- نقوم بإنشاء حساب على github.com من خلال github.com/join
- بعد ذلك نقوم بتسجيل الدخول
- سنجد في الشريط العلوي علامة + نقوم بالضغط عليها
- بعدها ستظهر لنا قامة منسدلة نختار منها new repository أي مستودع جديد
- بعدها ستظهر لنا الصفحة التالية
- نقوم بإعطاء المستودع الاسم الذي نريده في الحقل repository name و و صف للمشروع إذا أردنا في الحقل الخاص ب description و نختار ما إذا كنا نريد أن يكون المستودع خاصًا أو ظاهرًا للعامة
- بعدها يبقى لنا خيار add a README file "يمكنك تجاهل الحقلين add .gitignore و chose a license الآن"، الآن أمامنا طريقان:
الطريق الأول اختيار add a README file و الضغط على create repository:
- ستظهر لنا الصفحة التالية بعدها:
أما إذا لم نقم باختيار add a README file ستظهر لنا الصفحة بالشكل التالي:
الآن لرفع المشروع الخاص بك يمكنك القيام بالتالي:
-
رفع ملفات المشروع بطريقة يدوية عن طريق الضغط على add file أو uploading an existing file كما هو مشار إليه بالمربع الأصفر في الصورتان السابقتان. بعدها ستظهر لنا هذه الصفحة التالية حيث يمكننا سحب الملفات و وضعها في المستطيل الخاص بإرفاق الملفات و الضغط على commit changes بعد اكتمال رفع الملفات. و بذلك تكون قد قمت برفع المشروع الخاص بك على المستودع البعيد
-
أو رفع المشروع باستخدام الطرفية عن طريق الأوامر التالية:
git init // ثم git add README.md // ثم git commit -m "first commit" // ثم git branch -M main // ثم git remote add origin https://github.com/ اسم المستخدم/repoName.git // ثم git push -u origin main
ستجد هذه الخطوات موجودة في المستودع الذي يتم إنشاءه بدون readme
و لكن لاستخدام هذه الطريقة يجب تثبيت طرفية تسمى git من خلال الموقع الرسمي لها Git - Downloads (git-scm.com) و تنصيبها و بعد ذلك استخدام هذه الأوامر لرفع المشاريع بعد التسجيل بحساب github الخاص بك.
-
1
-
بتاريخ 10 ساعات قال عبدالله عمر احمد:
mysql
وان كنت تعرف الحل لل postgresql فساحول
الحل الخاص ب PostgreSQL:
سنحتاج لتثبيت مكتبة تسمى psycopg2 و هي مكتبة تُمكننا من التواصل مع قاعدة البيانات
pip install psycopg2
نقوم بفتح ملف settings.py الخاص بمشروعك ثم نقوم بالتمرير حتى نصل إلى الجزء الخاص ب database و الذي يبدو كما يلي:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
سنقوم ببعض التعديلات عليه حتى نتمكن من استخدام PostqreSQL مع Django ليصبح كما يلي:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'اسم قاعدة البيانات الخاصة بالتطبيق', 'USER': 'اسم المستخدم ', 'PASSWORD': 'كلمة المرور الخاصة بالمستخدم', 'HOST': 'localhost', 'PORT': 'المنفذ الذي تريد الاتصال بقاعدة البيانات عن طريقه- المنفذ الافتراضي هو 5432', } }
----
الاتصال بقاعدة البيانات:
سنتوجه إلى ال directory التي تحتوي الملف manage.py و نقوم بتنفيذ الأمر التالي:
python manage.py migrate
إذا تمت الأمور على ما يرام من المفترض أن ترى مخرجات كهذه:
Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying sessions.0001_initial... OK
و بذلك يكون قد تم الاتصال بقاعدة البيانات PostgreSQL و يمكنك أن تبدأ باستخدامها و إنشاء queries في models.py بالطريقة الطبيعية التي تستخدمها مع أي قاعدة البيانات. إذا كان هذا الأمر جديد عليك يمكنك أن تبحث عن سلاسل تعليمية "Django database queries - Making queries in Django " حتى تتعلم كيفية القيام بذلك. و إذا واجهتك أي مشاكل يمكنك طرح سؤالك هنا و سنقوم بمساعدتك
-
هل يمكنك توضيح ما هي قاعدة البيانات التي تقوم باستخدامها حتى نتمكن من مساعدتك بشكل أفضل؟
-
1
-
-
-
هل يمكنك التوضيح أكثر حتى نتمكن من مساعدتك بشكل أفضل؟؟
إذا كان سؤالك متعلقًا بشراء أحد دورات أكاديمية حسوب يمكنك التواصل مع الدعم الفني من هنا و فتح تذكرة باستفسارك و سيتم التواصل معك في أقرب وقت ممكن.
-
1
-
-
بتاريخ 10 ساعات قال محمد رشيد2:
شكرا اخي كريم على الرد السريع واللع تعبت لحصل رد لاكن شو الفرق بين decode وال dezend
واذا في شي حل اخر
حتى نفهم ذلك دعني أشرح لك مفهوم ال zend أولًا.
يقوم ال zend engine ب:
- يتم عمل compilation لأكواد php إلى مجموعة من ال opcodes "و ال opcodes هي اختصار ل operation code و هي تعتبر تعليمات للآلة تم كتابتها بلغة الآلة machine language instructions"
- بعد ذلك يقوم بعمل execution لهذه ال opcodes
و عملية ال dezend هي عكس هذه العملية و للقيام بذلك يمكنك استخدام برامج أو خدمات مدعوة للقيام بذلك مثل idezender و غيرها.
-- أما عملية ال decode.
عملية ال encode هي تحويل نص ما إلى رموز غير مفهومة عن طريق آلية معينة، مثلًا تحويل كلمة "something" إلى الصورة التالية "437B930DB84B8079C2DD804A71936B5F" حتى يصعب على المخترقين معرفة الكلمة الحقيقية و هي تستخدم لأغراض الحماية.
و عملية ال decode هي عكس عملية ال encode أي إعادة 437B930DB84B8079C2DD804A71936B5F إلى something.
و هذا ما تقوم به ioncube فهي تقوم بتشفير ال opcode و ليس الكود المصدري نفسه مما يعني أنها تقوم بالقضاء على الكود المصدري نفسه و إذا قمت بعكس عملية التشفير التي تقوم بها ioncube ستحصل على opcode و ليس الكود المصدري أي لن تتمكن من التعديلل عليه في هذه الحالة أيضًا.
و لفك هذا التشفير أيضًا يمكنك استخدام بعض الأدوات و التطبيقات مثل İoncube Decoder.
و يقوم المطورون بتنفيذ هذه العمليات على مشاريعهم لحمايتها و عدم السماح للآخرين بالتعديل عليها أو استخدامها، أي أن استخدام هذه الأدوات أمر مخالف.
-- إذا كانت الملفات التي تعمل عليها الآن هي ملفات لمشروع أحد العملاء مثلًا و تحتاج للتعديل عليها يمكنك أن تشرح له الأمر تطلب منه تزويدك بالكود المصدري للمشروع حتى تتمكن من العمل عليه
-
إذا كنت تستخدمين نسخة laravel السادسة أو السابعة يمكنك القيام بذلك باتباع الخطوات التالية:
نقوم بإنشاء مشروع laravel جديد:
composer create-project laravel/laravel --prefer-dist laravel-bootstrap
نقوم بالدخول إلى المشروع الذي قمنا بإنشاءه:
cd laravel-bootstrap
نقوم بتثبيت laravel ui:
composer require laravel/ui
نقوم بتنزيل bootsratp:
php artisan ui bootstrap
بعدها هذا الأمر:
php artisan ui bootstrap --auth
بعدها نقوم بتنزيل حزمة bootstrap و الحزم التي تعتمد عليها :
npm install
بعدها سنلاحظ أنه تم إضافة التالي في الملفات variables.scss_ و app.scss الموجودة في resources/sass
// Fonts @import url('https://fonts.googleapis.com/css?family=Nunito'); // Variables @import 'variables'; // Bootstrap @import '~bootstrap/scss/bootstrap';
ثم:
# أثناء التطوير npm run dev # أثناء الإنتاج npm run production
لاستخدام bootstrap في ملفات laravel blade templates:
<!doctype html> <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> <head> <meta charset="utf-8"> <title>{{ config('app.name', 'Laravel') }}</title> <!-- Scripts --> <script src="{{ asset('js/app.js') }}" defer></script> <!-- Styles --> <link href="{{ asset('css/app.css') }}" rel="stylesheet"> </head> <body> <h1>Tutorial made by Positronx.io</h1> </body> </html>
للنسخ الأقدم نقوم بالتالي:
لإنشاء مشروع:
laravel new App
بعدها نقوم بتنزيل حزمة bootstrap و الاعتماديات"سيتم تثبيت bootstrap 3 بصورة افتراضية" :
npm install
نقوم بتثبيت bootstrap 4 :
npm install bootstrap@4.0.0-beta
نقوم بتضمين الملفات في الملف resources/assets/sass/app.scss
// Fonts @import url("https://fonts.googleapis.com/css?family=Raleway:300,400,600"); // Variables @import "variables"; // نقوم باستبدال السطر التالي // Bootstrap @import "~bootstrap-sass/assets/stylesheets/bootstrap"; // بهذا السطر حتى يتم استيراد الخطوط و المتغيرات من النسخة الرابعة و ليس الثالثة // Bootstrap @import "node_modules/bootstrap/scss/bootstrap";
التعديل الأخير المتعلة ب css و هو تعديل كل px في ملف variables.scss_ إلى rem.
في ملف js/bootstrap.js نقوم بتعديل:
require('bootstrap-sass');
إلى:
require('bootstrap');
ثم نقوم بتنفيذ الأمر التالي في الطرفية:
npm run production
-
بتاريخ 10 ساعات قال Ahmed Sawy:
هل كلامه صحيح ام لا ؟؟؟
ليس تمامًا، فصاحب العمل يمكنه تحديد ما إذا كان المشروع منسوخ أم لا من خلال الأسئلة التي يطرحها عليك أثناء المقابلة مثل:
ما التقنيات التي استخدمتها لهذا المشروع؟ لماذا اخترت هذه التقنيات بالتحديد؟ ما المشاكل التي واجهتك أثناء بناءه و كيف قمت بحلها؟ أو مثلًا يمكنه تغيير جزء من المشروع ليجعل المشروع يتوقف عن العمل و يطلب منك إصلاحه... و غيرها. كل هذه الأمور تجعله يتحقق إذا كنت قد قمت بنسخ المشروع أو بناءه بنفسك.
و مع ذلك إذا كنت تقوم بدفع أكواد إلى github بصورة مستمرة فهذا أمر في صالحك فهو يعطي انطباع لصاحب العمل بأنك شخص مثابر و دؤوب و تحب عملك.
لذلك أنصحك بأن تقوم بدفع التعديلات الخاصة بمشاريعك باستمرار و دفع الأكواد بعد الانتهاء من خاصية معينة أو التعديل عليها أو إصلاح مشكلة.
بتاريخ 10 ساعات قال Ahmed Sawy:لو كان صحيحا فانا أريد رفع مشاريعى على موقع جيت هاب وأمل أن اجد طريقة تمكننى من رفع الملفات ولكن بتاريخ تعديلها على جهازى .. مثلا قمت بتعديل كمبوننت خاص بتطبيق منذ 10 ايام .. وقمت بتعديل ملفات اخرى منذ اربعة ايام .. اذا قمت برفع هذه الملفات على جيت هاب تظهر كلها بنفس تاريخ الرفع .. هل توجد طريقة معينة لرفع الملفات بتاريخ تعديلها على الجهاز ؟؟
أعتقد أن هذا غير ممكن بالطريقة التي تريدها. يمكنك رفع مشاريعك كلها الآن في وقت واحد و بعد ذلك تبدأ باتباع ما ذكرته لك م دفع أكواد باستمرار إلى مستودعات المشروع.
-
هل يمكنك إعطاء معلومات أكثر عن قاعدة البيانات ما نوعها و الجداول التي تحتويها، أو تزودينا بملف قاعدة البيانات نفسه حتى نتمكن من مساعدتك بشكل أفضل
-
مرحبًا عبد الواحد.
لا أنصحك أبدًا بمعالج من النوع U فهذه المعالجات أداؤها متواضع جدًا "و قد قمت بتجربتها شخصيًا" و ستسبب لك الكثير من المشاكل و الإزعاج و ثِقل بالجهاز أثناء عملك، أنصحك بأن تبحث عن جهاز المعالج الخاص به من النوع H. أيضًا من الأفضل أن لا تقل ال RAM عن 16GB يمكنك استخدام جهاز ال RAM الخاص به 8GB لكن ستعاني بعض المشاكل و الثِقل في بعض الأحيان
-
1
-
-
--في السطر الخاص ب json.stringfy هنا نقوم بتحويل الكائن product إلى الصيغة json حتى نقوم بإرساله إلى المُخدم لأن خادم الويب لا يمكنها أن تفهم الكائنات الخاصة ب javascript فقط يمكنها فهم السلاسل النصية.
أي يتم تحويل كائن بهذه الصورة:
let product = { id: '64564545', productName: 'iphone', price: 1300 }
إلى هذه الصورة:
{ "id": "64564545", "productName": "iphone", "price": 1300 }
--أما السطر الخاص ب conten-type فهنا نقوم بتحديد نوع البيانات التي سيتم إرسالها إلى الخادم هل ستكون text/html أم json كما في المثال السابق، هنا نحن نريد إرسال بيانات من النوع json لذلك قمنا باستخدام النوع application/json
--أما السطر الخاص ب
const id = (await response.json()).name
في السطر الخاص ب const response نحن قمنا بإرسال طلب إلى الخادم و ننتظر منه أن يعيد لنا بيانات ما على صورة json أيضًا. من البيانات التي سيعيدها هي name و هي التي تحمل ال id الخاص بالمنتج الذي تم إرساله إلى الخادم.
لذلك هنا ()await response.json نحن ننتظر البيانات التي سيعيدها الخادم و بعد ذلك نقوم باستخراج قيمة الخاصية name و تخزينها في المتغير id
-
يمكنك استخدام الأمر التالي حتى تقوم بعمل rollback و تعود لل commit التي تريدها "أي إعادة الملفات لما كانت عليه قبل التحديثات"
git reset --hard c2e7af2b51
الرقم الموجود بعد كلمة hard هو ال id الخاص بال commit التي تريد العودة لها، ولكن كيف نحصل عليه.
-
بعد أن نقوم بفتح المستودع سنجد كلمة commits كما هو موضح بالصورة
-
نقوم بالضغط عليها و بعد ذلك سيتم فتح الصفحة التالية
- نقوم بنسخ ال id الخاص بال commit التي تريد العودة لها و وضعه بعد كلمة hard الموجودة في الأمر المذكور أعلاه
- و نقوم بتنفيذ الأمر و ستجد أن الملفات عادت لما كانت عليه في ال commit التي نسخنا ال id الخاص بها.
-- إذا لم تكن متأكد من الأكواد التي تحتويها ال commit يمكنك الضغط على <> حتى تتمكن من معرفة التعديلات التي تمت بها.
-
3
-
بعد أن نقوم بفتح المستودع سنجد كلمة commits كما هو موضح بالصورة
-
بتاريخ 9 ساعات قال Mohamed Ahmed51:
How long will it take me to be able to learn react I know HTML and I a little css
قبل أن تتعلم react يجب أن تكون ملمًا بأساسيات html و css و javascript بالإضافة إلى معرفة es6 لا يجب أن تكون خبيرًا فقط الأساسيات التي تجعلك تتمكن من بناء مواقع و تطبيقات ويب بسيطة بنفسك. أما عن الوقت الذي ستحتاجه لتعلمها فلا يوجد أحد يمكنه إجابتك على هذا السؤال فالأمر يتوقف عليك و على مدى سرعة و طريقة تعلمك قد تستغرق أسبوعًا أو شهرًا أو عدة أشهر الأمر يتوقف عليك.
-
يوجد العديد من التقنيات التي تمكنك من بناء مواقع مثل الأمثلة المذكورة.
و لكن هذه هي التقنيات التي تم بناء الموقع retailmenot.com:
- React.js و هي أحد مكتبات جافاسكريبت تم تطويرها من قِبَل مطوري facebook و تستخدم لبناء واجهات المستخدم "تستخدم نيابةً عن html و css و jquery و bootstrap"
- Next.js و إطار عمل يستخدم لبناء server-side-rendered React apps بسهولة. أي أنه إطار عمل يستخدم مع react. و قد تم استخدامها في هذا الموقع ك web framework و web server
- node.js و هو بيئة تشغيل/عمل تُمكننا من استخدام javascript في ال backend "خارج المتصفح بصفة عامة"
أما الموقع الثاني فهو لا يعمل الآن لذلك لا يمكنني اخبارك بكافة التقنيات و التفاصيل و لكنه يستخدم مكتبة react أيضًا
-
يمكنك استخدام الطريقة التالية باستخدام مكتبة dart:io لتحديد نظام التشغيل الخاص بالجهاز.
حيث يمكنك الحصول غلى اسم نظام التشغيل كسلسلة نصية string باستخدام الoperatingSystem getter، و يمكنك أيضًا استخدام أحد ال boolean getters مثل isMacOS, isLinux, and isWindows
import 'dart:io' show Platform; void main() { // Get the operating system as a string. String os = Platform.operatingSystem; // Or, use a predicate getter. if (Platform.isIOS) { print('is a IOS'); } else if (Platform.isAndroid) { print('is a Andriod'); } else { }
-
1
-
-
بتاريخ 9 ساعات قال أسماء عبدالله محمود النظاري:
شــكــراََ لك..ممكن أن أسالك سؤال أخر!!
نعم، تفضلي
-
للحصول على اسم الموظفين و تاريخ التوظيف الخاص بالموظفين الذين تم توظيفهم في عام 1982 في oracle يمكنك استخدام الاستعلام التالي:
SELECT name, hire_date FROM employees WHERE hire_date >= '1982-01-01' and hire_date < '1982-01-01'
في البداية نقوم بتحديد/اختيار SELECT الأعمدة التي نريد الحصول على البيانات الخاصة بها هذه الأعمدة هي اسم الموظف name و تاريخ توظيفه hire_date "قد تختلف أسماء هذه الأعمدة في قاعدة البيانات الخاصة بك"
نقوم باختيار هذه الأعمدة من FROM جدول الموظفين employees "قد يختلف اسم هذا الجدول في قاعدة البيانات الخاصة بك"
و من هذه الأعمدة نريد استخراج أسماء الوظفين الذين تم توظفيهم في عام 1982 بالإضافة إلى تاريخ توظيفهم لذلك نقوم باستخدام where أي عندما تاريخ التوظيف أكبر من أو يساوي أول أيام عام 1982 و أصغر من أول أيام العام الذي يليه أي 1983
-
الأمر يختلف من عميل لآخر، ففي كل مشروع سيخبرك العميل عن الطريقة التي يريد استلام المشروع بها، فمثلًا:
- في بعض الأحيان تقوم بتسليم المشروع على هيئة مجلد مضغوط مثلًا.
- في بعض الأحيان العميل يطلب أن يتم رفع الملفات على مستودع github.
- في بعض الأحيان تقوم برفع المشروع على c-panel أو استضافة و تسلمه إياها و بعد ذلك يقوم هو بتغيير كلمة المرور.
-
2
-
يمكنك استخدام package جاهزة للقيام بذلك:
مثل: php-credit-card-validator
- طريقة تثبيتها كما يلي:
نقوم باستيرادها في ملف composer.json
"require": { "inacho/php-credit-card-validator": "1.*" },
و إذا كنت تستخدم laravel نقوم بإضافة alias في config/app.php:
'aliases' => array( 'App' => 'Illuminate\Support\Facades\App', ... 'View' => 'Illuminate\Support\Facades\View', 'CreditCard' => 'Inacho\CreditCard', ),
- طريقة الاستخدام:
التحقق من رقم البطاقة في حال معرفة نوعها:
$card = CreditCard::validCreditCard('5500005555555559', 'mastercard'); print_r($card);
الناتج:
// Output: Array ( [valid] => 1 [number] => 5500005555555559 [type] => mastercard )
التحقق من رقم البطاقة و إعادة نوعها:
$card = CreditCard::validCreditCard('371449635398431'); print_r($card);
الناتج:
// Output: Array ( [valid] => 1 [number] => 371449635398431 [type] => amex )
التحقق من CVC:
$validCvc = CreditCard::validCvc('234', 'visa'); var_dump($validCvc);
الناتج:
// Output: bool(true)
التحقق من تاريخ الانتهاء:
$validDate = CreditCard::validDate('2013', '07'); // past date var_dump($validDate);
الناتج:
// Output: bool(false)
-
1
MYSQL DATABASE ERROR WITH FOREIGN KEY
في أسئلة البرمجة
نشر
هذا الخطأ يظهر أيضا في وجود foreign key بنفس الاسم في جدول آخر.لذلك عندما يظهر لك هذا الخطأ تأكد من تماشي/تطابق أنواع البيانات أيضا إذا كان ال primary key UNSIGNED يجب أن يكون ال foreign key unsined كذلك.ط و من أن أسماء ال foreign keys فريدة unique.
إذا لم تتمكن من حل المشكلة أرجو تزويدنا بمزيد من المعلومات عن الأكواد و قاعدة البيانات حتى نتمكن من مساعدتك.
شكرا لك.