iMr.WiFi..!

x[ شرح مهم ]x executeSQLQuery + DB fuctions

Recommended Posts

بسم الله الرحمن الرحيم سلام عليكم ورحمة الله وبركاته ,,
حبيت اطرح شرح executeSQLQuery
مفصل وكامل ان شاء الله .
لكثرة الاعضاء الغير فاهمين له او الجاهلين له

بسم الله نبدأ ..
executeSQLQuery = عبارة عن قاعدة في سيرفرك
dbConnect = عبارة عن قاعدة متصلة بالخادم او بالملف
اولاً بننشئ كود الاتصال لو كنت بتستعمل dbFunctions
 

test_db = dbConnect( "sqlite", "file.db" ) -- عبر ملف
test_db = dbConnect( "mysql", "dbname=frank;host=1.2.3.4", "username", "password", "share=1" ) -- عن طريق الاتصال بالخادم .: )

فالنفترض انه عندنا القاعدة بهذا الشكل :
 

{

}

فاضي صحيح ؟
طيب عشان ننشئ تيبل وندرج فيه المعلومات ,
بنحتاج نكتب هالكود :

local result1 = executeSQLQuery ( "CREATE TABLE IF NOT EXISTS players (name TEXT, money TEXT, health TEXT)" )
local qh = dbQuery( test_db, "CREATE TABLE IF NOT EXISTS players (name TEXT, money TEXT, health TEXT)" ) -- نسوي الأمر
local result2 = dbPoll( qh, -1 ) -- ونطلع النتيجة
if ( result1 and result2 ) then
	print ( "Success to create tables" ) -- نكتب في الديبق نجاح في انشاء الجداول
end
-- CREATE TABLE IF NOT EXISTS players (name TEXT, money TEXT, health TEXT)
-- الترجمة : 
-- players اصنع جدول اذا ماكان فيه جدول بأسم 
-- والأعمدة هي :
-- name, money, health

بيطلع الناتج في القاعدة ~> 

{
	players = { 
		
	}
}

^ الجدول حق players 
فاضي نبي نضيف عليه قيمة مثلا ..

local result31 = executeSQLQuery ( "INSERT INTO players(name,money,health) VALUES(?,?,?)", 'wifi','1000','100' )
local qh2 = dbQuery( test_db, "INSERT INTO players(name,money,health) VALUES(?,?,?)", 'wifi','1000','100' ) -- نسوي الأمر
local result41 = dbPoll( qh, -1 ) -- ونطلع النتيجة
if ( result31 and result41 ) then
	print ( "Success to insert values" ) -- نكتب في الديبق نجاح في ادخال القيم
end
-- INSERT INTO players(name,money,health) VALUES(?,?,?)
-- الترجمة : 
-- أدخال الى player
-- والأعمدة هي :
-- name, money, health
-- والقيم :
-- ?,?,? == 'wifi', '1000', '100'

ملاحظة مهمة جداً :
عند وضع سهم داخل الأمر او اي عملية SQL
استبداله بالارقمنت خارج العملية
كمثال :
 

("?,?",'wifi','1000') 
-- الاستفهام الاول بيستبدل بوايفاي
-- والاستفاهم الثاني بيستبدل برقم ألف
("?,'1000'",'wifi') 
-- الاستفهام الاول بيستبدل بوايفاي

^ أتمنى تكون وضحت :
بيطلع الناتج في القاعدة ~> 

{
	players = { 
		{ name='wifi', money='1000', health='100' }
	}
}

لو نبي نضيف قيمة ثانية بأسم نصور مثلاً
وجا بروس قال انا الي ابي اصير القيمة وتضاربو وبعدين صار بروس القيمة

ونصور راح .. 

كذا نسوي :

local result3 = executeSQLQuery ( "INSERT INTO players(name,money,health) VALUES(?,?,?)", 'BrosS','-1000','10' )
local qh3 = dbQuery( test_db, "INSERT INTO players(name,money,health) VALUES(?,?,?)", 'BrosS','-1000','10' ) -- نسوي الأمر
local result4 = dbPoll( qh, -1 ) -- ونطلع النتيجة
if ( result3 and result4 ) then
	print ( "Success to insert values" ) -- نكتب في الديبق نجاح في ادخال القيم
end
-- INSERT INTO players(name,money,health) VALUES(?,?,?)
-- الترجمة : 
-- أدخال الى player
-- والأعمدة هي :
-- name, money, health
-- والقيم :
-- ?,?,? == 'BrosS', '-1000', '10'

 

بيطلع الناتج في القاعدة ~> 

{
	players = { 
		{ name='wifi', money='1000', health='100' },
		{ name='BrosS', money='-1000', health='10' },
	}
}

طيب لو نبي نجيب فلوس واي فاي كيف ؟
بهذي الطريقة :
 

local result5 = executeSQLQuery ( "SELECT money FROM players WHERE name=?", 'wifi' )
local qh4 = dbQuery( test_db, "SELECT money FROM players WHERE name=?", 'wifi' ) -- نسوي الأمر
local result6 = dbPoll( qh, -1 ) -- ونطلع النتيجة
if ( result5 and result6 ) then
	print ( "Success to select values" ) -- نكتب في الديبق نجاح في تحديد القيم
	print ( result5, result6 ) -- راح يطبع لنا فلوس واي فاي
	-- Result :
	-- 1000
end
-- SELECT money FROM players WHERE name=?
-- الترجمة : 
-- تحديد عامود money
-- من جدول players
-- اين القيمة المطابقة في عامود name
-- والقيم :
-- ? = 'wifi'

شكل التحديد في القاعدة  ~>
 

-- > = التحديد
-- ? = أين
-- == = يطابق
{
	>players = { 
		{ ?name=='wifi', >money='1000', health='100' },
		{ name='BrosS', money='-1000', health='10' },
	}
}
-- توضيح اكثر
{
	>players = { -- نحدد التيبل الي نريده
		{ ?name='wifi', >money='1000', health='100' }, -- ? نحدد القيمة الي نريدها< + الي نبحث عنها
		{ name='BrosS', money='-1000', health='10' },
	}
}

 

مثال اخر لو نبي نجيب هيلث بروس :
 

local result7 = executeSQLQuery ( "SELECT health FROM players WHERE name=?", 'BrosS' )
local qh5 = dbQuery( test_db, "SELECT health FROM players WHERE name=?", 'BrosS' ) -- نسوي الأمر
local result8 = dbPoll( qh, -1 ) -- ونطلع النتيجة
if ( result7 and result8 ) then
	print ( "Success to select values" ) -- نكتب في الديبق نجاح في تحديد القيم
	print ( result5, result6 ) -- راح يطبع لنا دم بروس
	-- Result :
	-- 10
end
-- SELECT money FROM players WHERE name=?
-- الترجمة : 
-- تحديد عامود money
-- من جدول players
-- اين القيمة المطابقة في عامود name
-- والقيم :
-- ? = 'BrosS'

 

الآن لو نبي نعدل على فلوس واي فاي او هلث بروس شلون ؟

بهذه الطريقة . : 
 

local result9 = executeSQLQuery ( "UPDATE players SET health='5' WHERE name=?", 'BrosS' )
local qh6 = dbQuery( test_db, "UPDATE players SET health='5' WHERE name=?", 'BrosS' ) -- نسوي الأمر
local result10 = dbPoll( qh, -1 ) -- ونطلع النتيجة
if ( result9 and result10 ) then
	print ( "Success to edit values" ) -- نكتب نجاح في تعديل القيم

end
-- UPDATE players SET health='5' WHERE name=?
-- الترجمة : 
-- تحديث جدول player
-- تحديد عامود health='القيمة الجديدة'
-- اين القيمة المطابقة في عامود name
-- والقيم :
-- ? = 'BrosS'

النتيجة او الطريقة في القاعدة  ~>
 

-- > = التحديد
-- ? = أين
-- ! = تعديل
-- == = يطابق
{
	>players = { 
		{ name='wifi', money='1000', health='100' },
		{ ?name=='BrosS', money='-1000', !health='10' },
	}
}
-- Result :
{
	players = { 
		{ name='wifi', money='1000', health='100' },
		{ name='BrosS', money='-1000', health='5' },
	}
}

ثم بروس صار دمه مره قليل 

 وراح بروس المستشفى وعالجه نصور لكن للأسف مات ونبي نحذفه من الجدول شلون ؟


 

local result11 = executeSQLQuery ( "DELETE FROM players WHERE name=?", 'BrosS' )
local qh7 = dbQuery( test_db, "DELETE FROM players WHERE name=?", 'BrosS' ) -- نسوي الأمر
local result12 = dbPoll( qh, -1 ) -- ونطلع النتيجة
if ( result11 and result12 ) then
	print ( "Success to delete values" ) -- نكتب نجاح في حذف قيمة 

end
-- DELETE FROM players WHERE name=?
-- الترجمة : 
-- حذف من players
-- اين القيمة المطابقة في عامود name
-- والقيم :
-- ? = 'BrosS'

 

النتيجة او الطريقة في القاعدة  ~>

-- > = التحديد
-- ? = أين
-- ! = حذف
-- == = يطابق
{
	>players = { 
		{ name='wifi', money='1000', health='100' },
		!{ ?name=='BrosS', money='-1000', health='5' },
	}
}
-- Result :
{
	players = { 
		{ name='wifi', money='1000', health='100' },
	}
}

 

ثم فجأه واي فاي حزن لأن بروس مات وقال بيستقيل , وصار مافي اي قيمة باقية شلون نحذف الجدول ؟

 

local result7 = executeSQLQuery ( "DROP TABLE players" )
local qh8 = dbQuery( test_db, "DROP TABLE players" ) -- نسوي الأمر
local result8 = dbPoll( qh, -1 ) -- ونطلع النتيجة
if ( result7 and result8 ) then
	print ( "Success to drop table" ) -- نكتب نجاح في حذف الجدول

end
-- DROP TABLE players
-- الترجمة : 
-- حذف جدول players


تنبيه مهم : الترجمة ليست حرفية انما بالمعنى فقط او للتوضيح بنسبة لغة البرمجة


المشاركون في المسرحية :
@!#NssoR_)
@#BrosS
@iMr.WiFi..!

من فضلكم تصفيق حار من اجلهم .. 

اعتذر اذا اشركت احدكم وماكان وده يشارك .. او العكس "
الشرح مقدم على يد : واي فاي 

الحكمة من القصة لا تسلب حق غيرك لو كان في ابسط او اصغر الاشياء

لأن بيجي شخص بيسلب حقك في اسوء او اكبر الاشياء

وفي الختام اتمنى الشرح افادكم ولو قليل وتفهمون ان شاء الله وتقولون الله يرحمك ي بروس

 

📋

 


 

Edited by iMr.WiFi..!
  • Like 6
  • Thanks 1
  • Haha 1

Share this post


Link to post

:) شرح رائع من شخص اروع  
كمل الي الامام لا توقف مع افضل الشروحات ان شاء الله

Share this post


Link to post
16 minutes ago, #Himoo said:

:) شرح رائع من شخص اروع  
كمل الي الامام لا توقف مع افضل الشروحات ان شاء الله

شكراً على الدعم , وان شاء الله ما اوقف وركزت على أهم الشروحات 
وان شاء الله تفيد الكل ; )

Share this post


Link to post
1 hour ago, iMr.WiFi..! said:

 

📋


 


 

أخوي بالله سأل انا فهمت و غستفدت كثير شكرا لك بس اخوي قيمة المال انت مسويها مثل ما تبي هل ينفع أسوي 

getPlayerMoney

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

ولو توضح لي لوش تستخدم هذي الاشياء في الأساس ؟ وش أسباب أستخدامها ؟ 

وشكرااا لك أخوي الغالي :) 

وكيف اسوي انه لما شخص يدخل بيحفض كل شي و هل انت عندما كتبت الإسم ويفي يعني لما الواحد يدخل بإسم اخر هل بتتغير القيم يعني ما بيتحفض هل ينفع أسوي بسريال ؟ 

وشكرااا لك اخوي والله ذي ابي أتعلمها عندي كثير وانت أفدتني :) 

وصراحت ما فهمتك كيف قلت ذي النتيجة 

local result4 = dbPoll( qh, -1 ) -- ونطلع النتيجة

 

Edited by WTF_

Share this post


Link to post

ابداع اقسم بالله ، يعطيك العافية

جوال ما اقدر الون واكبر الخط ض كان عطيتك تعليق جميل

شكرا على مشاركتي بالمسرحية اهئ

  • Like 1
  • Haha 1

Share this post


Link to post
18 minutes ago, WTF_ said:

أخوي بالله سأل انا فهمت و غستفدت كثير شكرا لك بس اخوي قيمة المال انت مسويها مثل ما تبي هل ينفع أسوي 


getPlayerMoney

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

ولو توضح لي لوش تستخدم هذي الاشياء في الأساس ؟ وش أسباب أستخدامها ؟ 

وشكرااا لك أخوي الغالي :) 

وكيف اسوي انه لما شخص يدخل بيحفض كل شي و هل انت عندما كتبت الإسم ويفي يعني لما الواحد يدخل بإسم اخر هل بتتغير القيم يعني ما بيتحفض هل ينفع أسوي بسريال ؟ 

وشكرااا لك اخوي والله ذي ابي أتعلمها عندي كثير وانت أفدتني :) 

وصراحت ما فهمتك كيف قلت ذي النتيجة 


local result4 = dbPoll( qh, -1 ) -- ونطلع النتيجة

 

اولاً : 
الفلوس انا حطيتها قيمة عشوائية من عندي انت تقدر تستعمل الفنكشن جت بلاير موني 
وتحطه هناك عشان تحفظ فلوسه كمثال

اما القاعدة بيانات تنحفظ مهما خرج او دخل اللاعب

او انطفى واشتغل المود

ثانياً :
النتيجة اقصد فيها نظام db بنفسه :
لأني بالشرح مسوي db + executeSQLQuery
مع بعض
فيه dbExec -- يرجع ترو او فولس على حسب اتصال القاعدة ام لا
dbFree -- مايعطيك اي نتيجة او قيمة ( مايرجع اي قيمة منطقية او سلسلة )
dbPoll -- يرجع لك قيمة على حسب العملية الي استعملتها 
True ^ False ^ String 

1 minute ago, #BrosS said:

ابداع اقسم بالله ، يعطيك العافية

جوال ما اقدر الون واكبر الخط ض كان عطيتك تعليق جميل

شكرا على مشاركتي بالمسرحية اهئ

شكراً , الله يعافيك .. 
واهنيك عالتمثيل بصراحة مبدع : ) xDD

Edited by iMr.WiFi..!
  • Like 1

Share this post


Link to post

كفوووووووووووووووووو
بروووووووووووووووس 

تستاهل جائزة الاوسكار احسنت 

  • Sad 1

Share this post


Link to post
Just now, #,+( _xiRoc[K]; > said:

واصل وايفاي B|,

ابداع بروس واصل تمثيلك لكن ليش مات كان عطيته فرصة ثانية ¬¬ :twisted:

عشان نطبق حكمة القصة فقط .. 

  • Sad 1

Share this post


Link to post

شرح كافي ووافي

اتمنى من اللي مافهم يقرا الشرح اكثر من مرة ويطبقه

بتوفيق

Edited by Talis

Share this post


Link to post
On 9/13/2017 at 14:52, MR.SAMSUNG said:

واصل  يا كفوووو

شرح اكثر من حلو

بالتوفيق لك . :$

 

On 9/13/2017 at 15:21, Talis said:

شرح كافي ووافي

اتمنى من اللي مافهم يقرا الشرح اكثر من مرة ويطبقه

بتوفيق

تشكرو على المرور : ) <3

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.