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

Mohamed Lamin Mahmoudi

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

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

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

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

    4

كل منشورات العضو Mohamed Lamin Mahmoudi

  1. أنا أستخدم React native إصدار أكبر من 60 لكن عندما أحاول تنفيذ الأمر npm install react-native-camera --save تظهر هذه المشاكل
  2. ثبت مكتبة react-native-camra لكن عندما أستدعي المكونات import QRCodeScanner from 'react-native-qrcode-scanner'; import { RNCamera } from 'react-native-camera'; تظهر الاخطاء التالية
  3. ثبت ماسح الكي ار كود عبر الأمر yarn add react-native-qrcode-scanner وتم التثبيت بنجاح لكن عندما أريد إستدعاء المكونات QrCodeScanner و RNCamera تظهر هذه الرسالة بأن المكتبة غير موجودة أين الخلل؟
  4. <TouchableOpacity onPress={formData.QRCode} activeOpacity={0.7} style={styles.button} > <Text style={styles.TextStyle}> Click Here To Generate QR Code </Text> </TouchableOpacity> //هنا <QRCode value={this.formData.QRCode} size={250} bgColor='#000' fgColor='#fff' /> كيف أمرر له القيمة بحيث عندما يتغير رابط الحصة وعند الضغط على الزر يتغير الكي أر كود؟
  5. عندما أريد أن أستعمل المكون Qrcode تظهر هذه الاخطاء import React ,{useState, Component} from 'react'; import {View,Text,StyleSheet,ScrollView,KeyboardAvoidingView,TextInput,TouchableOpacity} from 'react-native'; import List from './compononts/list'; import Loader from './compononts/Loader'; import Inbut from './compononts/Inbut'; import { Entypo } from '@expo/vector-icons'; import ScreenTitle from './compononts/ScreenTitle'; import QRCode from "react-qr-code"; function AddRoom(){ const [formData, setFormData]=useState({ NameOfroom:'', NumberOfroom: '', date:'', QrCode:'' }); const changeFormValue=(key,value)=>{ setFormData({...formData,[key]:value}); } const { NameOfroom, NumberOfroom, date,QrCode}=formData; return( <ScrollView contentContainerStyle={{paddingVertical:20}} > <View style={styles.container}> <View style={styles.titlescreen}> <ScreenTitle title="أضف حصة " ></ScreenTitle> <Entypo name="add-to-list" size={70} color="black" style={styles.icontitle} /> </View> </View> <KeyboardAvoidingView behavior='padding' enabled> <View style={styles.styInbut}> <Inbut placeholder="إسم الحصة " value={NameOfroom} onChangeText={(text)=>changeFormValue('NameOfroom',text)} /> <Inbut placeholder="رقم الحصة " value={NumberOfroom} onChangeText={(text)=>changeFormValue('NumberOfroom',text)} /> <Inbut placeholder="تاريخ الحصة " value={date} onChangeText={(text)=>changeFormValue('date',text)} /> <View style={styles.Qrcodestyl}> <TextInput style={styles.TextInputStyle} value={QrCode} onChangeText={(text) => changeFormValue('Qrcode',text)} underlineColorAndroid = "transparent" placeholder="Enter URL to Generate QR Code" /> <TouchableOpacity onPress={QrCode} activeOpacity={0.7} style={styles.button} > <Text style={styles.TextStyle}> Click Here To Generate QR Code </Text> </TouchableOpacity> //هنا الخطأ <QRCode></QRCode> </View> </View> </KeyboardAvoidingView> </ScrollView> ) }; const styles=StyleSheet.create({ container:{ flex:1, justifyContent:'center', alignItems:'center' }, titlescreen:{ position:'relative', top:-40 }, icontitle:{ position:'relative', right:-25, top:-20 }, styInbut:{ position:'relative', left:45, top:-40 }, textcont:{ fontSize:25, position:'relative', left:90, bottom:-5, }, Qrcodestyl:{ position:'relative', left:50 }, TextInputStyle:{ position:'relative', left:-60, width: '80%', height: 50, borderRadius: 10, marginBottom: 10, borderWidth: 1, borderColor: 'blue', textAlign: 'center' }, button: { position:'relative', right:60, height:50, width: '80%', paddingTop:8, paddingBottom:8, backgroundColor: '#009688', borderRadius:7, marginBottom: 20 }, TextStyle:{ color:'#fff', textAlign:'center', fontSize: 18 } }) export default AddRoom;
  6. هل هناك مقال أو فيديو توجهني إليه يوضح إلي كيف أعمل لأني تتبعت اليوتيوب ولم أنجح في ذلك ؟؟
  7. بحثت في gradel عن signing Report لم أجدها كيف يمكنني أن أجدها لكي أدخل signature de dèbogage في إضافة firebase لمشروعي
  8. جربت طريقة من اليوتيوب في إعادة توليد مفتاح API جديد لكن ذلك لم ينفع ومازالت تظهر نفس الرسالة ماذا أفعل ؟؟؟
  9. هذا هو الرابط التطبيق https://github.com/TheHaloEffect/Authendance أنا حملت الملفات بشكل مضغوط لكن أين أجد الملفات المصدرية لكي أستطيع أن أعدل عليها ؟؟
  10. حملت هذا التطبيق من github عندما أريد الدخول يظهر هذه الرسالة مامعنى هذا ؟؟
  11. أريد وضع نموذج لقاعدة البيانات بإسم الحصة حيث الحصة تحتوي على (رقم الحصة و إسم الحصة و تاريخ الحصة و مسحة Qr code الخاصة بالحصة ) فما هو النمط الذي أضعه لمسحة Qr code ?
  12. كيف أضيف مكتبة boostsrap في تطبيق react بطريقة صحيحة علما أني استعملت الطرق التالية ولم تنجح الإضافات import * as bootstrap from 'bootstrap'; واستعملت كذلك في ملف html <link rel="stylesheet" href="bootstrap-5.1.3-dist/css/bootstrap-grid.css"> <link rel="stylesheet" href="bootstrap-5.1.3-dist/js/bootstrap.bundle.js"> ومن خلال npm نفذت الأمر التالي npm i bootstrap-icons
  13. للأسف تتبعت الخطأ مرار وتكرارا وبعد عدة محاولات بعد التنفيذ أصبح يأخذني إلى هنا android.database.sqlite.SQLiteException: near "SELECT": syntax error (code 1 SQLITE_ERROR[1]): , while compiling: SELECT * FROM SELECT * FROM STUDENT_TABLE WHERE _CID=? ORDER BY ROLL
  14. لم أفهم المشكل تماما عندما أضغط على الخطأ يأخذني إلى هنا
  15. عندما أضغط على زر الحفظ تظهر العديد من الأخطاء هذه الأخطاء E/SQLiteDatabase: Error inserting STATUS=A _SID=5 STATUS_DATE=14.05.2022 android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: STATUS_TABLE._SID, STATUS_TABLE.STATUS_DATE (code 2067 SQLITE_CONSTRAINT_UNIQUE[2067]) والشيفرة: package com.example.appmobile; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import androidx.annotation.Nullable; class DbHelper extends SQLiteOpenHelper { private static final int VERSION = 1; private static final String CLASS_TABLE_NAME = "CLASS_TABLE"; public static final String C_ID = "_CID"; public static final String CLASS_NAME_KEY = "CLASS_NAME"; public static final String SUBJECT_NAME_KEY = "SUBJECT_NAME"; private static final String CREATE_CLASS_TABLE = "CREATE TABLE " + CLASS_TABLE_NAME + "(" + C_ID + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," + CLASS_NAME_KEY + " TEXT NOT NULL, " + SUBJECT_NAME_KEY + " TEXT NOT NULL, " + "UNIQUE (" + CLASS_NAME_KEY + "," + SUBJECT_NAME_KEY + ")" + ");"; private static final String DROP_CLASS_TABLE = "DROP TABLE IF EXISTS "+CLASS_TABLE_NAME; private static final String SELECT_CLASS_TABLE = "SELECT * FROM "+CLASS_TABLE_NAME; private static final String STUDENT_TABLE_NAME = "STUDENT_TABLE"; public static final String S_ID = "_SID"; public static final String STUDENT_NAME_KEY = "STUDENT_NAME"; public static final String STUDENT_ROLL_KEY = "ROLL"; private static final String CREATE_STUDENT_TABLE = "CREATE TABLE " + STUDENT_TABLE_NAME + "( " + S_ID + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " + C_ID + " INTEGER NOT NULL, "+ STUDENT_NAME_KEY + " TEXT NOT NULL, " + STUDENT_ROLL_KEY + " INTEGER, "+ " FOREIGN KEY ( "+C_ID+") REFERENCES "+ CLASS_TABLE_NAME + "("+C_ID+")"+ ");"; private static final String DROP_STUDENT_TABLE = "DROP TABLE IF EXISTS "+STUDENT_TABLE_NAME; private static final String SELECT_STUDENT_TABLE = "SELECT * FROM "+STUDENT_TABLE_NAME; private static final String STATUS_TABLE_NAME = "STATUS_TABLE"; public static final String STATUS_ID = "_STATUS_CID"; public static final String DATE_KEY = "STATUS_DATE"; public static final String STATUS_KEY = "STATUS"; private static final String CREATE_STATUS_TABLE = "CREATE TABLE " + STATUS_TABLE_NAME + "(" + STATUS_ID + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "+ S_ID + " INTEGER NOT NULL, " + DATE_KEY + " DATE NOT NULL, " + STATUS_KEY + " TEXT NOT NULL, " + "UNIQUE ("+ S_ID + "," + DATE_KEY+"),"+ " FOREIGN KEY ("+S_ID+") REFERENCES "+ STUDENT_TABLE_NAME + "( "+S_ID+")"+ ");"; private static final String DROP_STATUS_TABLE = "DROP TABLE IF EXISTS "+STATUS_TABLE_NAME; private static final String SELECT_STATUS_TABLE = "SELECT * FROM "+STATUS_TABLE_NAME; public DbHelper(@Nullable Context context) { super( context, "Attendance.db", null, VERSION ); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_CLASS_TABLE); db.execSQL(CREATE_STUDENT_TABLE); db.execSQL(CREATE_STATUS_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { try { db.execSQL( DROP_CLASS_TABLE ); db.execSQL( DROP_STUDENT_TABLE ); db.execSQL( DROP_STATUS_TABLE ); }catch (SQLException e){ e.printStackTrace(); } } long addClass(String className,String subjectName){ SQLiteDatabase database = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put( CLASS_NAME_KEY,className ); values.put( SUBJECT_NAME_KEY,subjectName ); return database.insert( CLASS_TABLE_NAME,null,values ); } Cursor getClassTable(){ SQLiteDatabase database = this.getReadableDatabase(); return database.rawQuery( SELECT_CLASS_TABLE,null ); } int deleteClass(long cid){ SQLiteDatabase database = this.getReadableDatabase(); return database.delete( CLASS_TABLE_NAME,C_ID+"=?",new String[]{String.valueOf( cid )} ); } long updateClass(long cid,String className,String subjectName){ SQLiteDatabase database = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put( CLASS_NAME_KEY,className ); values.put( SUBJECT_NAME_KEY,subjectName ); return database.update( CLASS_TABLE_NAME,values,C_ID+"=?",new String[]{String.valueOf( cid )}); } long addStudent(long cid,int roll,String name){ SQLiteDatabase database = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(C_ID,cid); values.put(STUDENT_ROLL_KEY,roll); values.put(STUDENT_NAME_KEY,name); return database.insert(STUDENT_TABLE_NAME,null,values ); } Cursor getStudentTAble(long cid){ SQLiteDatabase database = this.getReadableDatabase(); return database.query(STUDENT_TABLE_NAME,null,C_ID+"=?",new String[]{String.valueOf( cid )},null,null,STUDENT_ROLL_KEY ); } int deleteStudent(long sid){ SQLiteDatabase database = this.getReadableDatabase(); return database.delete( STUDENT_TABLE_NAME,S_ID+"=?",new String[]{String.valueOf( sid )} ); } long updateStudent(long sid,String name){ SQLiteDatabase database = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put( STUDENT_NAME_KEY,name ); return database.update( STUDENT_TABLE_NAME,values,S_ID+"=?",new String[]{String.valueOf( sid )}); } long addStatus(long sid,String date, String status){ SQLiteDatabase database = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(S_ID,sid); values.put(DATE_KEY,date); values.put(STATUS_KEY,status); return database.insert(STATUS_TABLE_NAME,null,values); } long updateStatus(long sid,String date, String status){ SQLiteDatabase database = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put( STATUS_KEY,status ); String whereClause = DATE_KEY +"='"+date+"' AND "+S_ID+"="+sid; return database.update( STATUS_TABLE_NAME,values,whereClause,null ); } String getStatus(long sid,String date){ String status =null; SQLiteDatabase database = this.getReadableDatabase(); String whereClause = DATE_KEY +"='"+date+"' AND "+S_ID+"="+sid; Cursor cursor = database.query( STATUS_TABLE_NAME,null,whereClause,null,null,null,null ); if (cursor.moveToFirst()) status = cursor.getString( cursor.getColumnIndexOrThrow( STATUS_KEY ) ); return status; } } DbHelper.java
  16. بعد تنفيذ التطبيق والدخول إليه عند الضغط على button teacher للتنقل إلى صفحة تسجيل الدخول الخاصة بال techers يخرج مباشرة ويأخذني إلى خطأ متعلق بقاعدة البيانات كما في الصورة في السطر 72 هل ممكن المساعدة؟ error E/SQLiteLog: (1) AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY D/AndroidRuntime: Shutting down VM E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.appmobile, PID: 30145 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.appmobile/com.example.appmobile.teacher_page}: android.database.sqlite.SQLiteException: AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY (code 1 SQLITE_ERROR[1]): , while compiling: CREATE TABLE CLASS_TABLE(_CIDINTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,CLASS_NAME TEXT NOT NULL, SUBJECT_NAME TEXT NOT NULL, UNIQUE (CLASS_NAME,SUBJECT_NAME)); at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3556) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3703) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2216) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:237) at android.app.ActivityThread.main(ActivityThread.java:7948) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075) Caused by: android.database.sqlite.SQLiteException: AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY (code 1 SQLITE_ERROR[1]): , while compiling: CREATE TABLE CLASS_TABLE(_CIDINTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,CLASS_NAME TEXT NOT NULL, SUBJECT_NAME TEXT NOT NULL, UNIQUE (CLASS_NAME,SUBJECT_NAME)); at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1372) at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:811) at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:590) at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:62) at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:33) at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:2321) at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:2249) at com.example.appmobile.DbHelper.onCreate(DbHelper.java:72) at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:486) at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:415) at com.example.appmobile.DbHelper.getClassTable(DbHelper.java:96) at com.example.appmobile.teacher_page.loadData(teacher_page.java:49) at com.example.appmobile.teacher_page.onCreate(teacher_page.java:37) at android.app.Activity.performCreate(Activity.java:7955) at android.app.Activity.performCreate(Activity.java:7944) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3531) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3703) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2216) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:237) at android.app.ActivityThread.main(ActivityThread.java:7948) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075) code package com.example.appmobile; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import androidx.annotation.Nullable; class DbHelper extends SQLiteOpenHelper { private static final int VERSION = 1; private static final String CLASS_TABLE_NAME = "CLASS_TABLE"; public static final String C_ID = "_CID"; public static final String CLASS_NAME_KEY = "CLASS_NAME"; public static final String SUBJECT_NAME_KEY = "SUBJECT_NAME"; private static final String CREATE_CLASS_TABLE = "CREATE TABLE " + CLASS_TABLE_NAME + "(" + C_ID + "INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," + CLASS_NAME_KEY + " TEXT NOT NULL, " + SUBJECT_NAME_KEY + " TEXT NOT NULL, " + "UNIQUE (" + CLASS_NAME_KEY + "," + SUBJECT_NAME_KEY + ")" + ");"; private static final String DROP_CLASS_TABLE = "DROP TABLE IF EXISTS "+CLASS_TABLE_NAME; private static final String SELECT_CLASS_TABLE = "SELECT * FROM "+CLASS_TABLE_NAME; private static final String STUDENT_TABLE_NAME = "STUDENT_TABLE"; private static final String S_ID = "_SID"; private static final String STUDENT_NAME_KEY = "STUDENT_NAME"; private static final String STUDENT_ROLL_KEY = "ROLL"; private static final String CREATE_STUDENT_TABLE = "CREATE TABLE " + STUDENT_TABLE_NAME + "( " + S_ID + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " + C_ID + " INTEGER NOT NULL, "+ STUDENT_NAME_KEY + " TEXT NOT NULL, " + STUDENT_ROLL_KEY + " INTEGER, "+ " FOREIGN KEY ( "+C_ID+") REFERENCES "+ CLASS_TABLE_NAME + "("+C_ID+")"+ ");"; private static final String DROP_STUDENT_TABLE = "DROP TABLE IF EXISTS "+STUDENT_TABLE_NAME; private static final String SELECT_STUDENT_TABLE = "SELECT * FROM "+STUDENT_TABLE_NAME; private static final String STATUS_TABLE_NAME = "STATUS_TABLE"; private static final String STATUS_ID = "_STATUS_CID"; private static final String DATE_KEY = "STATUS_DATE"; private static final String STATUS_KEY = "STATUS"; private static final String CREATE_STATUS_TABLE = "CREATE TABLE " + STATUS_TABLE_NAME + "(" + STATUS_ID + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "+ S_ID + " INTEGER NOT NULL, " + DATE_KEY + " DATE NOT NULL, " + STATUS_KEY + " TEXT NOT NULL, " + "UNIQUE ("+ S_ID + "," + DATE_KEY+"),"+ " FOREIGN KEY ("+ S_ID+") REFERENCES "+ STUDENT_TABLE_NAME+"( "+S_ID+")"+ ");"; private static final String DROP_STATUS_TABLE = "DROP TABLE IF EXISTS "+STATUS_TABLE_NAME; private static final String SELECT_STATUS_TABLE = "SELECT * FROM "+STATUS_TABLE_NAME; public DbHelper(@Nullable Context context) { super( context, "Attendance.db", null, VERSION ); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_CLASS_TABLE); db.execSQL(CREATE_STUDENT_TABLE); db.execSQL(CREATE_STATUS_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { try { db.execSQL( DROP_CLASS_TABLE ); db.execSQL( DROP_STUDENT_TABLE ); db.execSQL( DROP_STATUS_TABLE ); }catch (SQLException e){ e.printStackTrace(); } } long addClass(String className,String subjectName){ SQLiteDatabase database = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put( CLASS_NAME_KEY,className ); values.put( SUBJECT_NAME_KEY,subjectName ); return database.insert( CLASS_TABLE_NAME,null,values ); } Cursor getClassTable(){ SQLiteDatabase database = this.getReadableDatabase(); return database.rawQuery( SELECT_CLASS_TABLE,null ); } } Appmobile2.rar Appmobile2.rar
  17. حسنا وكيف أتحكم في حدود الصفحة الرئيسية من خلال css وضعت تنسيقات لل body وهي witdh:900px و position:fixed لكن ألاحظ أن العناصر التي داخل body مثل الملاحظات تخرج عن إطار 900px مالسبب في ذلك ؟
  18. كيف أستطيع أن أتحكم في حدود الصفحة الرئيسية بدون التأثير على العناصر التي داخل الصفحة الرئيسة مثال :عندي صفحة رئيسية تحتوي على عناصر أمامكم الصورة ,بعد تفعيلي للخاصية position:fixed تظهر الصفحة هكذا كما أريد لكن عندما أريد فحص العنصر inspect تختفي معظم العناصر ولا أستطيع أن أتحكم بها لأنني لا أراها إلا عندما أكبر الصفحة إن شاء الله أكون وضحت القصد من السؤال notes-app.rar
  19. لماذا نستعمل json في مشاركة البيانات بين العميل والخادم ؟ وماذا يحدث لو أرسلنا البيانات كما هي بدون تحولها لصيغة json أو صيغة أخرى ؟
  20. هل يوجد مقال أو كتاب يشرح ماهي الإستضافات وكيفية رفع المشاريع عليها ؟
  21. يعني مابعد مرحلة النشر والتشغيل لايمكن للمطور أن يرى أو يعدل إن أراد مثلا على بيانات أي مستخدم ؟
  22. هل قواعد البيانات المستخدمة في تطوير تطبيقاتنا مثل mongodb و mySql lite هي فقط للتجريب وماهي قواعد البيانات المستعملة في الإستضافات على مستوى الويب؟
×
×
  • أضف...