Jump to content

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


Recommended Posts

16 minutes ago, #Himoo said:

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

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

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

 

?


 


 

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

getPlayerMoney

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

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

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

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

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

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

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

 

Edited by WTF_
Link to comment
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
Link to comment
  • 2 months later...
On 9/13/2017 at 14:52, MR.SAMSUNG said:

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

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

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

 

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

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

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

بتوفيق

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

Link to comment
On ١٣‏/٩‏/٢٠١٧ at 10:52, iMr.WiFi..! said:
  • 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'

شرح جميل لكن عندك شوي اخطاء هنا التعديل

----------------------------هذا مافيه اي مشكلة
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 qh2 = dbQuery( test_db, "INSERT INTO players  VALUES(?,?,?)", 'wifi','1000','100' )
-------------بعكس الاكسكيوت كويري مو لازم تضيف اسماء الكولمنز
--local result41 = dbPoll( qh, -1 ) --المفروض انك ما تستخدم dbPoll 
---------بما انك استخدمت dbQuery
-----------------فلازم تستخدم dbFree فبتكون كذا
dbFree(qh2)
--------------------وفي طريقة اخرى ما تحتاج تستخدم dbFree
---------------وهي باستخدام dbExec زي كذا
dbExec(test_db,"INSERT INTO players  VALUES(?,?,?)", 'wifi','1000','100')
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'

وبالتوفيق

Link to comment
  • 8 months later...
On ١٤‏/١٢‏/٢٠١٧ at 16:15, Master_MTA said:

شرح جميل لكن عندك شوي اخطاء هنا التعديل


----------------------------هذا مافيه اي مشكلة
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 qh2 = dbQuery( test_db, "INSERT INTO players  VALUES(?,?,?)", 'wifi','1000','100' )
-------------بعكس الاكسكيوت كويري مو لازم تضيف اسماء الكولمنز
--local result41 = dbPoll( qh, -1 ) --المفروض انك ما تستخدم dbPoll 
---------بما انك استخدمت dbQuery
-----------------فلازم تستخدم dbFree فبتكون كذا
dbFree(qh2)
--------------------وفي طريقة اخرى ما تحتاج تستخدم dbFree
---------------وهي باستخدام dbExec زي كذا
dbExec(test_db,"INSERT INTO players  VALUES(?,?,?)", 'wifi','1000','100')
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'

وبالتوفيق

dpPollتوني الاحظ ردك .. علعموم مافيه اخطاء الكولمنز تكتب لاضافة ترتيب للقيم فقط لاغير, اما الـ 
تستخدم مع اي نتيجة للكوايري حتى لو ماترجع قيمة ذات نتيجة

  • Like 1
Link to comment
On 13/09/2017 at 09:52, iMr.WiFi..! said:

بسم الله الرحمن الرحيم سلام عليكم ورحمة الله وبركاته ,,
حبيت اطرح شرح 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 :	-- 1000end-- 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 :	-- 10end-- 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..!

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

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

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

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

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

 

?


 


 

والله ما كنت افهم للسكل لكن شرحك ساعدني

واصل يا بطل

Link to comment

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.
×
×
  • Create New...